{
  "openapi": "3.1.0",
  "info": {
    "title": "Conflicts & Capital",
    "version": "2026-09-08",
    "summary": "Read-only JSON for a law column's articles, figures, glossary, milestones and datasets.",
    "description": "Everything this column publishes is also available as JSON, at stable paths, with no key and no rate limit. The intended use is straightforward: load the enforcement dataset into a notebook, diff the Ledger between releases to see which figures moved, or point an internal tool at the milestone feed. Every endpoint is a static file, so it is cacheable and cannot fall over.\n\nTwo cautions worth reading before you build on it. First, the figures carry the date they were checked, not a guarantee that the underlying instrument has not moved since; each Ledger entry names the status table it was read from so you can check the position today. Second, the enforcement dataset is a defined sample of 116 entries, not a complete list of parties to any of the five instruments, and the European Union occupies a row of its own; see the release's methodology section before computing a proportion from it.",
    "license": {
      "name": "CC BY 4.0 (data and metadata; the pieces are all rights reserved, quotation with citation excepted)",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    },
    "contact": {
      "name": "The desk",
      "email": "Eric.martin@emory.edu",
      "url": "https://conflictsandcapital.netlify.app/contact"
    }
  },
  "servers": [
    {
      "url": "https://conflictsandcapital.netlify.app",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "Publication",
      "description": "What has been published."
    },
    {
      "name": "Provenance",
      "description": "Where every figure comes from."
    },
    {
      "name": "Reference",
      "description": "Glossary and dated milestones."
    },
    {
      "name": "Datasets",
      "description": "The published data releases."
    }
  ],
  "paths": {
    "/api/articles.json": {
      "get": {
        "tags": [
          "Publication"
        ],
        "summary": "Everything published",
        "description": "One record per piece: canonical path, date, law-stated-as-of date, jurisdictions, doctrines, instruments, deal stage, and the thesis in one sentence. The `path` field is the canonical URL and is what a citation should point at.",
        "operationId": "api_articles_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "count": 4
                  },
                  "articles": [
                    {
                      "id": "foreign-by-control",
                      "section": "brief",
                      "path": "/brief/foreign-by-control",
                      "view": "brief",
                      "title": "Foreign by Control: When the Buyer’s Passport Stops Mattering",
                      "subtitle": "The EU’s new foreign-investment screening regulation defines the investor it reaches by looking through the buyer to whoever ultimately controls it.",
                      "date": "2026-08-20",
                      "lawStatedAsOf": "2026-08-20",
                      "authors": [
                        "Eric Martin"
                      ],
                      "jurisdictions": [
                        "EU",
                        "United States"
                      ],
                      "doctrines": [
                        "Foreign investment screening",
                        "Ultimate control",
                        "Merger control"
                      ],
                      "instruments": [
                        "Regulation (EU) 2026/1386",
                        "Regulation (EU) 2019/452"
                      ],
                      "dealStage": "Pre-signing",
                      "thesis": "From January 17, 2028 the look-through to the acquirer’s ultimate control stops being an anti-circumvention rule and becomes part of the Union definition of a foreign investment. The standard for prohibiting a deal does not move with it: that is still the Treaty, construed strictly in Xella. What the widened trigger delivers is therefore not more prohibitions but a larger class of deals inside a national authorization requirement, moved from the art. 4(4) clock, which has a five-year ceiling, to the art. 4(5) clock, which has none. Articles 19 and 20, which govern assessment criteria and screening decisions, are not read for this piece and are named as the limit of it.",
                      "citations": {
                        "cases": 2,
                        "instruments": 2,
                        "notes": 9
                      },
                      "readingTime": 12
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/ledger.json": {
      "get": {
        "tags": [
          "Provenance"
        ],
        "summary": "Every figure, with its source",
        "description": "Each entry is one figure the column prints, the claim it supports, the basis for it, the source relied on, the date it was checked, and the pages it appears on. A pre-release script verifies that every entry still appears on the site and that dataset-derived counts still match the file. Diff this between releases to see exactly which numbers moved.",
        "operationId": "api_ledger_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "title": "The Ledger",
                    "note": "Every figure Conflicts & Capital publishes, with the source relied on and the date it was checked. Counts drawn from the published dataset are recomputed from the file itself before a release is packaged, so this page and the dataset cannot drift apart. Where the prose renders a figure differently from the canonical form, the alternative is recorded as an alias. The check is a substring match against the rendered site and the dataset: it catches a figure that has been changed, dropped, or never printed, but it does not prove that the occurrence it matched is the intended one.",
                    "generated": "2026-09-08",
                    "license": "CC BY 4.0",
                    "count": 105
                  },
                  "entries": [
                    {
                      "id": "n",
                      "figure": "116",
                      "claim": "Jurisdictions in the Release 01 dataset, each with every cell sourced and dated.",
                      "basis": "Count of rows in the published CSV.",
                      "source": "Conflicts & Capital, By the Numbers, Release 01",
                      "url": "https://conflictsandcapital.netlify.app/data/cross-border-enforcement-network-2026-08.csv",
                      "checked": "2026-08-20",
                      "where": [
                        "front",
                        "whats-market"
                      ],
                      "aliases": [
                        "116 rows",
                        "116 entries"
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/terms.json": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Glossary",
        "description": "Defined terms with a short gloss and the doctrine each belongs to. The site uses these to link terms in running prose.",
        "operationId": "api_terms_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "generated": "2026-08-31",
                    "license": "CC BY 4.0",
                    "count": 22,
                    "lawStatedAsOf": "2026-08-31",
                    "note": "Each entry is a statement of law in miniature and is held to the standard of a footnote: the instrument is named and the provision is pinned. The entries summarize; they are not a substitute for the citations in the pieces."
                  },
                  "terms": [
                    {
                      "term": "Article 5 cascade",
                      "aka": [
                        "product-liability cascade"
                      ],
                      "gloss": "Rome II’s ordered connecting factors for a product-liability claim: the habitual residence of the person sustaining the damage when the damage occurred, then the country of acquisition, then the country of damage, each limb applying only if the product was marketed there. The timing matters: a claimant who has moved since the injury is placed by where she was then, not where she is now. Art. 4(2) takes priority where claimant and defendant are habitually resident in the same country, and art. 23(1) fixes a company’s habitual residence at its central administration, or at a branch or establishment where the damage arises in the course of its operation. Within art. 5(1) a foreseeability override applies the law of the habitual residence of the person claimed to be liable where marketing in the selected country could not reasonably have been foreseen, and art. 5(2) displaces the whole cascade for a manifestly closer connection with another country. The cascade is displaced entirely where the 1973 Hague Products Liability Convention applies: art. 28(1) of Rome II preserves conventions to which a Member State was party when Rome II was adopted, and because the 1973 Convention also binds non-Member States art. 28(2) does not claw it back, so it continues to govern in France, Spain, Luxembourg, the Netherlands, Finland, Croatia, and Slovenia.",
                      "doctrine": "Product liability"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/wire.json": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Dated milestones",
        "description": "The milestones the Wire counts down to, each with a date, a kind (applies, force, decided, deadline, trial) and the source it was taken from. Hand-maintained: a development not entered here does not appear, so treat it as a calendar of what is coming rather than a complete record.",
        "operationId": "api_wire_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "generated": "2026-08-29",
                    "license": "CC BY 4.0",
                    "count": 15,
                    "note": "Generated from the milestone list in index.html before packaging, so the tape and this file cannot disagree."
                  },
                  "wire": [
                    {
                      "date": "2028-08-02",
                      "kind": "applies",
                      "text": "AI Act high-risk obligations for AI embedded as a safety component in regulated products",
                      "source": "Regulation (EU) 2024/1689, art. 113, as amended by Regulation (EU) 2026/1744"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/enforcement-network.json": {
      "get": {
        "tags": [
          "Datasets"
        ],
        "summary": "Release 01, as JSON",
        "description": "Recognition, enforcement and judicial-cooperation status across five instruments for 116 entries: 115 states and territories plus the European Union. The array is jurisdictions, not rows. Regenerated from the CSV in the same build step that writes this spec, so the two cannot drift.",
        "operationId": "api_enforcement_network_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "generated": "2026-09-08",
                    "license": "CC BY 4.0",
                    "rows": 116,
                    "sources": [
                      "https://www.hcch.net/en/instruments/conventions/status-table/?cid=137",
                      "https://www.hcch.net/en/instruments/conventions/status-table/?cid=98",
                      "https://www.hcch.net/en/instruments/conventions/status-table/?cid=17",
                      "https://www.hcch.net/en/instruments/conventions/status-table/?cid=82",
                      "https://uncitral.un.org/en/texts/arbitration/conventions/foreign_arbitral_awards/status2",
                      "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32012R1215",
                      "https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:22007A1221(03)"
                    ]
                  },
                  "jurisdictions": [
                    {
                      "jurisdiction": "Austria",
                      "hague_judgments_2019": "in force",
                      "hague_judgments_in_force_from": "2023-09-01",
                      "hague_choice_of_court_2005": "in force",
                      "hague_service_1965": "party",
                      "hague_evidence_1970": "not a party",
                      "ny_convention_1958": "party",
                      "ny_convention_in_force_from": "1961-07-31",
                      "brussels_ia_1215_2012": "applies",
                      "lugano_2007": "in force; through the European Union",
                      "hcch_member": "yes",
                      "source_url": "https://www.hcch.net/en/instruments/conventions/status-table/?cid=137 | https://www.hcch.net/en/instruments/conventions/status-table/?cid=98 | https://www.hcch.net/en/instruments/conventions/status-table/?cid=17 | https://www.hcch.net/en/instruments/conventions/status-table/?cid=82 | https://www.hcch.net/en/states/hcch-members | https://uncitral.un.org/en/texts/arbitration/conventions/foreign_arbitral_awards/status2 | https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32012R1215 | https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:22007A1221(03)",
                      "source_date": "2026-08-20",
                      "note": "EU Member State: bound by the 2019 Judgments Convention and the 2005 Choice of Court Convention through the European Union's accession/approval (REIO), not by individual ratification; HCCH status table lists it as 'A EU *' / 'Ap EU *'. 2019 Convention in force for EU (minus Denmark) 2023-09-01; 2005 Convention in force for EU (minus Denmark) 2015-10-01."
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/corpus.json": {
      "get": {
        "tags": [
          "Publication"
        ],
        "summary": "Everything, in one file",
        "description": "Six top-level keys: meta, with counts; articles, one metadata record per piece and not the text of it; ledger; terms; wire; and datasets, which carries both releases in full and is most of the file. For anyone who would rather fetch once.",
        "operationId": "api_corpus_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "meta": {
                    "generated": "2026-09-08",
                    "counts": {}
                  },
                  "articles": [],
                  "ledger": [],
                  "terms": [],
                  "wire": [],
                  "datasets": {}
                }
              }
            }
          }
        }
      }
    },
    "/api/openapi.json": {
      "get": {
        "tags": [
          "Publication"
        ],
        "summary": "This document",
        "description": "The description you are reading. Listed so a client that finds the 404 body, which points here, can fetch it.",
        "operationId": "api_openapi_json",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "openapi": "3.1.0"
                }
              }
            }
          }
        }
      }
    },
    "/data/cross-border-enforcement-network-2026-08.csv": {
      "get": {
        "tags": [
          "Datasets"
        ],
        "summary": "Release 01, as CSV",
        "description": "The published file, versioned in its name so the address is stable. Columns: jurisdiction, one status column per instrument with entry-into-force dates where the source gives one, hcch_member, source_url, source_date, note.",
        "operationId": "enforcement_csv",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/data/post-closing-reach-2026-08.csv": {
      "get": {
        "tags": [
          "Datasets"
        ],
        "summary": "Release 02, as CSV",
        "description": "The published file, versioned in its name so the address is stable. 54 jurisdictions, 24 columns. Each row carries post_closing_reach and six coded columns derived from it, a one-paragraph call_in_post_closing with the operative provision, provision_refs, the official URL it was read from, and a confidence cell that says in the author's own words what could and could not be verified.",
        "operationId": "post_closing_csv",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/feed.xml": {
      "get": {
        "tags": [
          "Publication"
        ],
        "summary": "Everything, as RSS",
        "description": "Every piece as it publishes. Point a reader, Outlook, or a Slack integration at this.",
        "operationId": "feed_feed_xml",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/rss+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/feed/data.xml": {
      "get": {
        "tags": [
          "Publication"
        ],
        "summary": "By the Numbers, as RSS",
        "description": "The data releases only.",
        "operationId": "feed_feed_data_xml",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/rss+xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
