{"openapi":"3.1.0","info":{"title":"Ohmega Monster agent API","version":"1.0.0","summary":"Read-only JSON over the claim/profile corpus behind ohmega.monster.","description":"Daily intelligence reports, theater dossiers, Pulses (0-100 readings with history), articles with graded claims, on-the-record statements, actor profiles, measured series and live events. Every response is {data, meta} with as_of, cite_as, source and license; list endpoints page with limit and cursor. Public, no authentication. A remote MCP server exposes the same operations at /api/mcp. Human guide: /developers.","license":{"name":"Quote with a link","url":"https://ohmega.monster/developers#terms"},"x-terms":"Ohmega claims, summaries, grades, Pulses and forecasts may be quoted with a link to cite_as. Source texts belong to their publishers; follow the source URLs. No warranty: readings are our assessment as of as_of, not guarantees."},"servers":[{"url":"https://ohmega.monster/api/v1"}],"externalDocs":{"description":"Developer guide, MCP setup, examples","url":"https://ohmega.monster/developers"},"paths":{"/index":{"get":{"operationId":"index","summary":"What exists: every endpoint, the data model and how fresh the desk is.","parameters":[],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/daily/{domain}/{date}":{"get":{"operationId":"daily_domain_date","summary":"One daily report (sections per theater, developments with sources and verification, on-the-record statements, sweep, outlook). date is YYYY-MM-DD or 'latest'.","parameters":[{"name":"domain","in":"path","required":true,"description":"Report domain.","schema":{"type":"string"},"example":"geopolitics"},{"name":"date","in":"path","required":true,"description":"YYYY-MM-DD or 'latest'.","schema":{"type":"string"},"example":"latest"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/daily/{domain}":{"get":{"operationId":"daily_domain","summary":"The newest daily report of a domain (alias of /daily/{domain}/latest).","parameters":[{"name":"domain","in":"path","required":true,"description":"Report domain.","schema":{"type":"string"},"example":"geopolitics"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/theaters":{"get":{"operationId":"theaters","summary":"Theaters under watch (a theater is one running situation). heat = how much it is in the news, not how bad it is.","parameters":[{"name":"domain","in":"query","required":false,"description":"Filter by domain.","schema":{"type":"string"},"example":"geopolitics"},{"name":"q","in":"query","required":false,"description":"Name contains.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/theaters/{id}":{"get":{"operationId":"theaters_id","summary":"One theater's living dossier: current assessment, timeline with sources and verification, places, actors, Pulses, forecasts, statements.","parameters":[{"name":"id","in":"path","required":true,"description":"Theater id from /theaters.","schema":{"type":"string"},"example":"iran-us-confrontation"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/briefs/{slug}":{"get":{"operationId":"briefs_slug","summary":"A brief: the deep analysis of one theater (timeline, indicators, competing explanations, scored judgments).","parameters":[{"name":"slug","in":"path","required":true,"description":"Brief slug from a theater's briefs[] or /search.","schema":{"type":"string"},"example":"example-brief"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/pulses":{"get":{"operationId":"pulses","summary":"Pulses: persistent 0-100 readings of one question about the world, with band and confidence. History is on the item.","parameters":[{"name":"band","in":"query","required":false,"description":"Filter by band.","schema":{"type":"string","enum":["calm","elevated","severe","critical","unassessed"]}},{"name":"status","in":"query","required":false,"description":"Filter by status.","schema":{"type":"string","enum":["experimental","active","dormant"]}},{"name":"q","in":"query","required":false,"description":"Name, question or situation contains.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/pulses/{id}":{"get":{"operationId":"pulses_id","summary":"One Pulse with its definition and the full reading history (every reading: date, mode, position, decision, reasoning).","parameters":[{"name":"id","in":"path","required":true,"description":"Pulse id from /pulses.","schema":{"type":"string"},"example":"pls_example"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/articles":{"get":{"operationId":"articles","summary":"Published articles, newest first (metadata only).","parameters":[{"name":"tag","in":"query","required":false,"description":"Exact tag.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Title or dek contains.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/articles/{slug}":{"get":{"operationId":"articles_slug","summary":"One article: markdown, graded claims with sources, corrections, how to cite.","parameters":[{"name":"slug","in":"path","required":true,"description":"Article slug from /articles.","schema":{"type":"string"},"example":"example-article"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/statements":{"get":{"operationId":"statements","summary":"Who said what: the on-the-record ledger (exact quotes only when quote is set). A statement proves it was said, not that it is true.","parameters":[{"name":"actor","in":"query","required":false,"description":"Speaker, affiliation or target name, or an ISO alpha-2 code.","schema":{"type":"string"},"example":"IR"},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"signal","in":"query","required":false,"description":"Signal type, e.g. threat, warning, red_line, offer.","schema":{"type":"string"},"example":"threat"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/actors":{"get":{"operationId":"actors","summary":"Actors (state profiles).","parameters":[{"name":"q","in":"query","required":false,"description":"Name or ISO code contains.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/actors/{iso}":{"get":{"operationId":"actors_iso","summary":"One state's power profile: leaders, population, economy, trade, energy, military (each figure with year, rank and source), recent statements, the theaters and Pulses it is in.","parameters":[{"name":"iso","in":"path","required":true,"description":"ISO 3166-1 alpha-2 code.","schema":{"type":"string"},"example":"IR"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/instruments":{"get":{"operationId":"instruments","summary":"Measured series (ship transits, prices, storage...): latest value, freshness and source.","parameters":[{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/instruments/{id}":{"get":{"operationId":"instruments_id","summary":"One measured series: latest value, changes over horizons, 'unusual' flag and recent points, with its source URL.","parameters":[{"name":"id","in":"path","required":true,"description":"Instrument id from /instruments.","schema":{"type":"string"},"example":"hormuz_transits"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/live/events":{"get":{"operationId":"live_events","summary":"Current live events from public feeds (internet outages, earthquakes, military aircraft, fire hotspots), each with its source URL. Relayed, not verified by Ohmega.","parameters":[{"name":"kind","in":"query","required":false,"description":"Event kind.","schema":{"type":"string","enum":["outage","quake","aircraft","fire"]}},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-10"},{"name":"severity","in":"query","required":false,"description":"Severity.","schema":{"type":"string","enum":["info","notable","major"]}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/anomalies":{"get":{"operationId":"anomalies","summary":"Where live ships, aircraft and satellite fire detections depart from Ohmega's own learned normal for that place and hour of the week (e.g. tankers 60% below normal in the Strait of Hormuz for 18 h), with ratio, duration, confidence and a plain sentence. Original analysis (ohmega_derived); coverage gaps are screened out.","parameters":[{"name":"layer","in":"query","required":false,"description":"What is counted.","schema":{"type":"string","enum":["ship","air","fire"]}},{"name":"direction","in":"query","required":false,"description":"Above or below normal.","schema":{"type":"string","enum":["above","below"]}},{"name":"active","in":"query","required":false,"description":"true: still going; false: recently closed.","schema":{"type":"string","enum":["true","false"]}},{"name":"country","in":"query","required":false,"description":"Country name as the desk writes it.","schema":{"type":"string"},"example":"Iran"},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-10"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/calendar":{"get":{"operationId":"calendar","summary":"What is coming: dated upcoming items (elections and referendums, central-bank decisions, data releases, commodity reports, summits, courts, AI and tech events, launches, our markets' resolution dates, deadlines our own reports named), soonest first and merged across sources, each with a topic, an importance, a grade and its sources. A date is a plan, not an outcome.","parameters":[{"name":"kind","in":"query","required":false,"description":"Kind of item.","schema":{"type":"string","enum":["election","vote","central_bank","summit","security_council","opec","deadline","data_release","commodity_report","conference","earnings","regulation","launch","court","market_resolves"]}},{"name":"topic","in":"query","required":false,"description":"Topic chip on /calendar.","schema":{"type":"string","enum":["economy","central_banks","elections","diplomacy","security","energy","tech","space","markets"]}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 code the item concerns.","schema":{"type":"string"},"example":"US"},{"name":"situation","in":"query","required":false,"description":"Situation id the item is linked to (from our own watches).","schema":{"type":"string"},"example":"sit_russia_nato"},{"name":"grade","in":"query","required":false,"description":"official = the body's own schedule; announced = compiled or company-confirmed; estimated = from a rule or projection; unconfirmed = our own reading.","schema":{"type":"string","enum":["official","announced","estimated","unconfirmed"]}},{"name":"confidence","in":"query","required":false,"description":"The older three-level form of grade: high = official, medium = announced or estimated, low = unconfirmed.","schema":{"type":"string","enum":["high","medium","low"]}},{"name":"min_importance","in":"query","required":false,"description":"1 routine, 2 notable (default), 3 major.","schema":{"type":"string","enum":["1","2","3"]}},{"name":"routine","in":"query","required":false,"description":"true: include routine items (weekly stock reports, UN Security Council meetings).","schema":{"type":"string","enum":["true","false"]}},{"name":"days","in":"query","required":false,"description":"How many days ahead (default 45, max 180).","schema":{"type":"string"},"example":"30"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sanctions":{"get":{"operationId":"sanctions","summary":"Sanctions designations and delistings on the US OFAC SDN, UK and EU lists, found by comparing each list with its previous copy: who, what kind (person, entity, vessel, aircraft), programme, countries, date and the list it came from. Newest first.","parameters":[{"name":"list","in":"query","required":false,"description":"Which list.","schema":{"type":"string","enum":["ofac","uk","eu"]}},{"name":"action","in":"query","required":false,"description":"Added or removed.","schema":{"type":"string","enum":["designated","delisted"]}},{"name":"type","in":"query","required":false,"description":"Kind of party.","schema":{"type":"string","enum":["person","entity","vessel","aircraft"]}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 code the party is tied to.","schema":{"type":"string"},"example":"RU"},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/attacks":{"get":{"operationId":"attacks","summary":"The attack log: attacks, clashes and mass-violence events (and humanitarian reports) from GDELT, ACLED, UCDP and ReliefWeb in one schema: when, where (lat/lon, country), parties, kind, fatalities where the source states them, the source and how it was coded (machine, curated, report). Ohmega's own count of what was reported since it began collecting: a minimum. Carries provenance (basis, coverage note, collecting-since) on the response and every row.","parameters":[{"name":"type","in":"query","required":false,"description":"Kind of event.","schema":{"type":"string","enum":["bombing","airstrike","armed_clash","assault","mass_violence","report"]}},{"name":"source","in":"query","required":false,"description":"Which source reported it.","schema":{"type":"string","enum":["gdelt","reliefweb","acled","ucdp"]}},{"name":"coding","in":"query","required":false,"description":"machine = software-read news (GDELT); curated = researcher-checked (ACLED, UCDP); report = a published humanitarian report.","schema":{"type":"string","enum":["machine","curated","report"]}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 code of the place.","schema":{"type":"string"},"example":"UA"},{"name":"days","in":"query","required":false,"description":"How many days back (default 14, max 14: the published window).","schema":{"type":"string"},"example":"7"},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/gnss":{"get":{"operationId":"gnss","summary":"GPS/GNSS interference zones: one-degree cells where an unusual share of aircraft report poor navigation accuracy (ADS-B NACp), with severity, a new/intensifying flag against the cell's own history, and a cross-check against GPSJam's independent daily file. Ohmega's own estimate (basis our_estimate, a minimum, with the date collection began) plus GPSJam's top band (third_party).","parameters":[{"name":"source","in":"query","required":false,"description":"ohmega_adsb = Ohmega's own estimate; gpsjam = GPSJam.org's file.","schema":{"type":"string","enum":["ohmega_adsb","gpsjam"]}},{"name":"severity","in":"query","required":false,"description":"Band of the degraded share.","schema":{"type":"string","enum":["low","medium","high"]}},{"name":"flag","in":"query","required":false,"description":"Only zones that are new or intensifying against their own history.","schema":{"type":"string","enum":["new","intensifying"]}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 code of the land under the cell centre.","schema":{"type":"string"},"example":"LT"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/maritime":{"get":{"operationId":"maritime","summary":"Vessel behaviour events Ohmega derived from the AIS it hears: ships that went silent where others kept being heard, ship-to-ship encounters in open water, identity changes (renames, IMO or flag changes), vessels matching a sanctions list, and long dwells over chokepoints and cable corridors. Each has a reason, a confidence and its evidence points. A pattern seen, never a finding of intent.","parameters":[{"name":"kind","in":"query","required":false,"description":"Kind of behaviour.","schema":{"type":"string","enum":["sanctioned","ais_gap","sts","identity","loiter"]}},{"name":"active","in":"query","required":false,"description":"true: still going; false: ended.","schema":{"type":"string","enum":["true","false"]}},{"name":"flag","in":"query","required":false,"description":"ISO 3166-1 alpha-2 flag state of a vessel involved.","schema":{"type":"string"},"example":"PA"},{"name":"area","in":"query","required":false,"description":"Part of the name of the area, or a country the area touches.","schema":{"type":"string"},"example":"Hormuz"},{"name":"imo","in":"query","required":false,"description":"7-digit IMO number.","schema":{"type":"string"},"example":"9074729"},{"name":"mmsi","in":"query","required":false,"description":"9-digit MMSI.","schema":{"type":"string"},"example":"636092000"},{"name":"min_confidence","in":"query","required":false,"description":"Only events at or above this confidence, 0 to 1.","schema":{"type":"string"},"example":"0.5"},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/satellite":{"get":{"operationId":"satellite","summary":"Satellite watch: places the desk tracks (struck or damaged assets, places in today's developments, chokepoints) with a before and after Sentinel-2 chip of the same ground, a change score and night lights against the site's own history. Ohmega's own computation: a machine signal that pixels differ, never an interpretation; a cloudy pair is inconclusive, and a site with little history is 'learning'. Every judgement carries basis, method_note, baseline_since and n_obs.","parameters":[{"name":"label","in":"query","required":false,"description":"Change verdict.","schema":{"type":"string","enum":["changed","steady","learning","inconclusive"]}},{"name":"kind","in":"query","required":false,"description":"A place from the ledger or a chokepoint zone.","schema":{"type":"string","enum":["asset","zone"]}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 code of the place.","schema":{"type":"string"},"example":"UA"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/track-record":{"get":{"operationId":"track-record","summary":"Ohmega's reality check: its own probability forecasts on Polymarket markets (made blind to the price, stored immutably) scored against the market's price at the same moment. Brier score and log loss for both, calibration, open paper positions, resolved markets including the misses. PAPER ONLY, not financial advice.","parameters":[],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ai-benchmarks":{"get":{"operationId":"ai-benchmarks","summary":"Frontier AI model scores across public benchmarks (Epoch AI hub, SWE-bench, LMArena): the best score so far, the frontier over time, open-weights against closed, per-lab series and how close each benchmark is to saturation. Measured scores only in the series; lab-claimed scores are listed apart as `claimed`. Without a filter: one summary row per benchmark.","parameters":[{"name":"benchmark","in":"query","required":false,"description":"A benchmark id or part of its name; returns the full series for the matches.","schema":{"type":"string"},"example":"gpqa"},{"name":"lab","in":"query","required":false,"description":"With benchmark: only this lab's series (lab id, e.g. anthropic, openai, google, meta, deepseek).","schema":{"type":"string"},"example":"anthropic"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/assets":{"get":{"operationId":"assets","summary":"Geolocated places (power plants, substations, refineries, fuel depots, ports, airbases, bases, dams) with the latest thing said about their state and by whom. A claimed strike is a party's claim, not a confirmation. Give at least one filter.","parameters":[{"name":"bbox","in":"query","required":false,"description":"west,south,east,north in degrees.","schema":{"type":"string"},"example":"30,46,38,52"},{"name":"type","in":"query","required":false,"description":"Kind of place.","schema":{"type":"string","enum":["power_plant","substation","refinery","fuel_depot","port","bridge","airbase","military_base","dam","rail_hub","vessel","entity","other"]}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2 code.","schema":{"type":"string"},"example":"UA"},{"name":"status","in":"query","required":false,"description":"Latest status on record.","schema":{"type":"string","enum":["operational","claimed_struck","reported_damaged","confirmed_damaged","destroyed","restored","unknown","seized","designated","behaviour_flagged"]}},{"name":"has_events","in":"query","required":false,"description":"true: only places with a status on record; false: only those without.","schema":{"type":"string","enum":["true","false"]}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/assets/{id}":{"get":{"operationId":"assets_id","summary":"One place and its full status history: every dated event with the party who said it, confidence and source URLs.","parameters":[{"name":"id","in":"path","required":true,"description":"Asset id from /assets.","schema":{"type":"string"},"example":"wri-UKR0000123"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/grid/{iso}":{"get":{"operationId":"grid_iso","summary":"Ohmega's grid-impact rollup for a country: installed generating capacity (WRI/OSM) and the share claimed struck, reported damaged, confirmed damaged or destroyed and restored over 7 and 30 days, split by fuel, plus the affected plants. Claimed and confirmed are separate and overlap. Original analysis (ohmega_derived).","parameters":[{"name":"iso","in":"path","required":true,"description":"ISO 3166-1 alpha-2 code.","schema":{"type":"string"},"example":"UA"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/search":{"get":{"operationId":"search","summary":"Text search over titles, headlines and names of articles, theaters, Pulses, briefs, daily reports and actors, and over the corpus index: every country, organisation, person, place, vessel, lab, model and situation by name or alias (type=entity) and the titles of published documents (type=document). Names and titles only, never document bodies.","parameters":[{"name":"q","in":"query","required":false,"description":"Query words (all must match), 2-200 characters.","schema":{"type":"string"},"example":"hormuz"},{"name":"type","in":"query","required":false,"description":"Restrict to one kind.","schema":{"type":"string","enum":["article","theater","pulse","brief","daily","actor","entity","document"]}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/entity":{"get":{"operationId":"entity","summary":"Who or what a name is, from the corpus: aliases, counts, the latest status, typed relations (head of state, affiliated with, stance...), what it is most connected to, its measured series (each with a basis) and the newest documents, claims and events with their sources. A country, an organisation, a person, a place, a vessel, a lab, a model or a situation. Ambiguous names return alternatives; a country wins over a same-named place.","parameters":[{"name":"name","in":"query","required":false,"description":"A name or alias to resolve (or pass key).","schema":{"type":"string"},"example":"Strait of Hormuz"},{"name":"key","in":"query","required":false,"description":"A view key from a previous result's match.key (exact; wins over the name), e.g. entity/org/nato or country/FR.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/about":{"get":{"operationId":"about","summary":"Everything the corpus holds about an entity since a date: documents (dailies, briefs, profiles, statements, articles), claims (with grounding, confidence and their source URLs) and events, newest first, each with the product and record it came from.","parameters":[{"name":"entity","in":"query","required":false,"description":"A name or alias of a country, organisation, person, place, vessel, lab, model or situation.","schema":{"type":"string"},"example":"Strait of Hormuz"},{"name":"key","in":"query","required":false,"description":"A view key from a previous result's match.key (exact; wins over the name), e.g. entity/org/nato or country/FR.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"kinds","in":"query","required":false,"description":"Comma-separated: claim, event, document select whole sections; any other value filters by item kind (daily, brief, profile, development, status_damaged ...).","schema":{"type":"string"},"example":"claim,event"},{"name":"limit","in":"query","required":false,"description":"How many items per list (default 30, max 200).","schema":{"type":"string"},"example":"20"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/timeline":{"get":{"operationId":"timeline","summary":"An entity's documents and events in date order (oldest first); a development repeated by several reports appears once.","parameters":[{"name":"entity","in":"query","required":false,"description":"A name or alias of a country, organisation, person, place, vessel, lab, model or situation.","schema":{"type":"string"},"example":"Strait of Hormuz"},{"name":"key","in":"query","required":false,"description":"A view key from a previous result's match.key (exact; wins over the name), e.g. entity/org/nato or country/FR.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"limit","in":"query","required":false,"description":"How many items per list (default 30, max 200).","schema":{"type":"string"},"example":"20"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/related":{"get":{"operationId":"related","summary":"What an entity is most connected to and why: typed edges x3, shared claims x2, shared events x1.5, shared documents x1 (the parts are shown), plus the typed relations with their evidence.","parameters":[{"name":"entity","in":"query","required":false,"description":"A name or alias of a country, organisation, person, place, vessel, lab, model or situation.","schema":{"type":"string"},"example":"Strait of Hormuz"},{"name":"key","in":"query","required":false,"description":"A view key from a previous result's match.key (exact; wins over the name), e.g. entity/org/nato or country/FR.","schema":{"type":"string"}},{"name":"kinds","in":"query","required":false,"description":"Only related entities of these kinds (comma-separated: country, org, person, place, ...).","schema":{"type":"string"},"example":"country,org"},{"name":"limit","in":"query","required":false,"description":"How many items per list (default 30, max 200).","schema":{"type":"string"},"example":"20"}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/series":{"get":{"operationId":"series","summary":"A measured series from the corpus with its unit and basis (official, our_count, our_derived, model, reported): one metric across the entities that have it (gdp, population, chk_hormuz_transits, bench.* ...), or an entity's own series (pass entity or key). A metric name that matches several returns the candidates.","parameters":[{"name":"metric","in":"query","required":false,"description":"A metric id, or the start of one ending in . or * to list a family.","schema":{"type":"string"},"example":"gdp"},{"name":"entity","in":"query","required":false,"description":"A name or alias of a country, organisation, person, place, vessel, lab, model or situation.","schema":{"type":"string"},"example":"Strait of Hormuz"},{"name":"key","in":"query","required":false,"description":"A view key from a previous result's match.key (exact; wins over the name), e.g. entity/org/nato or country/FR.","schema":{"type":"string"}},{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2020-01-01"},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/changes":{"get":{"operationId":"changes","summary":"What changed in the last 30 days, newest first: Pulse moves, new briefs and daily reports, forecasts made and resolved. Poll this to stay current.","parameters":[{"name":"since","in":"query","required":false,"description":"Only items on or after this date or instant (YYYY-MM-DD or ISO 8601).","schema":{"type":"string"},"example":"2026-10-01"},{"name":"type","in":"query","required":false,"description":"Event type.","schema":{"type":"string","enum":["pulse_created","pulse_moved","brief_published","daily_published","forecast_made","forecast_resolved"]}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/forecasts":{"get":{"operationId":"forecasts","summary":"Every forecast we made (probability, horizon, resolution criteria, status) and the public Brier scorecard.","parameters":[{"name":"status","in":"query","required":false,"description":"Filter by status.","schema":{"type":"string","enum":["open","yes","no","void"]}},{"name":"limit","in":"query","required":false,"description":"Page size (default 50, max 200).","schema":{"type":"string"},"example":"20"},{"name":"cursor","in":"query","required":false,"description":"Opaque cursor from meta.next of the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The envelope: {data, meta}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"A parameter is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing published under that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Envelope":{"type":"object","required":["data","meta"],"properties":{"data":{"description":"The endpoint's payload. Its shape follows the published document named in meta.source."},"meta":{"type":"object","required":["as_of","source","version","cite_as","license"],"properties":{"as_of":{"type":["string","null"],"description":"Freshness of the underlying data (ISO date or instant)."},"source":{"type":"string","description":"Schema or table the data came from, e.g. ohmega.daily/1."},"version":{"type":"string","example":"v1"},"cite_as":{"type":"string","format":"uri","description":"Canonical human URL to cite."},"license":{"type":"string"},"verification":{"type":"string","description":"Present when the whole response has one verification level; items carry their own otherwise."},"note":{"type":"string","description":"A caveat to keep when you repeat the data."},"provenance":{"type":"object","description":"Corpus-backed endpoints: the products and documents the server-built view was derived from. Records inside also carry their own product, origin and source URLs."},"basis":{"type":"array","items":{"type":"string"},"description":"Corpus-backed endpoints: the kinds of number in the data, in the stats-registry vocabulary (official, our_count, our_derived, model, reported ...)."},"next":{"type":"string","format":"uri","description":"URL of the next page, when there is one."}}}}},"Error":{"type":"object","required":["error","meta"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","not_found","internal"]},"message":{"type":"string"}}},"meta":{"type":"object","properties":{"version":{"type":"string"}}}}}}}}