{
  "name": "pt.newsroom.sgit.ai — read-only API",
  "version": "v0.23.6",
  "base": "https://pt.newsroom.sgit.ai/api/v1/",
  "openapi": "https://pt.newsroom.sgit.ai/api/v1/openapi.json",
  "console": "https://pt.newsroom.sgit.ai/api/",
  "what_this_is": "Every path here is a JSON file on disk. There is no server: a GET is a file read. That is why an OpenAPI document for it is honest — there is no verb that is not a GET and no request body anywhere.",
  "why_english": "The publication is natively Portuguese and stays that way; the interface to the data is English because the intent is several languages over one dataset. The field names inside the documents are still Portuguese, because they are the publication's own record of itself and translating them on the way out would mean serving something no file here contains.",
  "licence": "CC BY 4.0 for the content. See /LICENSES.md. Reusing it does not transfer the lawful basis for the personal data it contains — see /api/v1/notice.json.",
  "collections": [
    {
      "path": "/api/v1/sources.json",
      "name": "sources",
      "portuguese_source": "dados/registo.json",
      "summary": "Every frozen source with its SHA-256, bytes and retrieval time",
      "description": "The register. This is what a claim on this site walks back to: a byte copy held in the repository, hashed, and re-verified on every build.",
      "count": 92,
      "items": "/api/v1/sources/<id>.json",
      "item_ids": [
        "2026-09-14-abertas-cordis",
        "2026-09-14-agenda",
        "2026-09-14-bilhetes",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-01",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-02",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-03",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-04",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-05",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-06",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-07",
        "2026-09-14-entregas-chatgpt-pt-newsroom-2026-09-14-politicas-src-pol-08",
        "2026-09-14-faq",
        "2026-09-14-imprensa-pbn-recorde-guinness",
        "2026-09-14-imprensa-portugalglobal-maratona",
        "2026-09-14-imprensa-scaleup-porto",
        "2026-09-14-imprensa-startupevents-org",
        "2026-09-14-index",
        "2026-09-14-llms-txt",
        "2026-09-14-local",
        "2026-09-14-oradores-akshay-ruparelia",
        "2026-09-14-oradores-alexandra-isenegger",
        "2026-09-14-oradores-amit-grinvald",
        "2026-09-14-oradores-andreia-gaudencio",
        "2026-09-14-oradores-angelee-sidar",
        "2026-09-14-oradores-anisha-yadav",
        "2026-09-14-oradores-anmol-goel",
        "2026-09-14-oradores-ben-lakoff",
        "2026-09-14-oradores-brian-nogaro",
        "2026-09-14-oradores-cintia-costa",
        "2026-09-14-oradores-daniel-gouveia",
        "2026-09-14-oradores-daniel-grech",
        "2026-09-14-oradores-david-graham",
        "2026-09-14-oradores-diego-sampaio",
        "2026-09-14-oradores-dina-kondratiuk",
        "2026-09-14-oradores-diogo-mendonca",
        "2026-09-14-oradores-ed-chandler",
        "2026-09-14-oradores-elias-flachowsky",
        "2026-09-14-oradores-filipa-faria",
        "2026-09-14-oradores-hector-lv",
        "2026-09-14-oradores-igor-nikolaiev",
        "2026-09-14-oradores-irina-shurmina",
        "2026-09-14-oradores-janelle-harder",
        "2026-09-14-oradores-joao-ramos",
        "2026-09-14-oradores-joaquim-nascimento",
        "2026-09-14-oradores-jorge-sebastiao",
        "2026-09-14-oradores-karan-setiya",
        "2026-09-14-oradores-kasia-szczesniak",
        "2026-09-14-oradores-kristina-kutan",
        "2026-09-14-oradores-lauren-mucklow",
        "2026-09-14-oradores-lidija-krickovic",
        "2026-09-14-oradores-lisa-rebecca-press",
        "2026-09-14-oradores-luis-gutman",
        "2026-09-14-oradores-luis-valente",
        "2026-09-14-oradores-luiza-castro-rey",
        "2026-09-14-oradores-mark-paul-haaksman",
        "2026-09-14-oradores-max-rodman",
        "2026-09-14-oradores-micael-lopes",
        "2026-09-14-oradores-mike-sigal",
        "2026-09-14-oradores-muhammad-farooq-rathod",
        "2026-09-14-oradores-nashwa-shah",
        "2026-09-14-oradores-nataliia-komarnytska",
        "2026-09-14-oradores-nina-chande",
        "2026-09-14-oradores-olesia-rykova",
        "2026-09-14-oradores-olivia-page",
        "2026-09-14-oradores-paulo-andrez",
        "2026-09-14-oradores-pedro-simoes",
        "2026-09-14-oradores-precy-servito",
        "2026-09-14-oradores-raffaella-loncao",
        "2026-09-14-oradores-ricardo",
        "2026-09-14-oradores-rita-figueiredo",
        "2026-09-14-oradores-rita-kastrati",
        "2026-09-14-oradores-rita-martins-freire",
        "2026-09-14-oradores-roman-knorr-duran",
        "2026-09-14-oradores-saachin-bhatt",
        "2026-09-14-oradores-satya-morarji",
        "2026-09-14-oradores-sebastian-horstmann",
        "2026-09-14-oradores-sibilla-strupule",
        "2026-09-14-oradores-slavi-slavev",
        "2026-09-14-oradores-sofia-bobrik",
        "2026-09-14-oradores-sylvie-ritt",
        "2026-09-14-oradores-tania-tome",
        "2026-09-14-oradores-thiago-vieira",
        "2026-09-14-oradores-tina-valand",
        "2026-09-14-oradores-viachaslau-smirnou",
        "2026-09-14-oradores-vini-devnani",
        "2026-09-14-oradores-wouter-heijnen",
        "2026-09-14-oradores-zoya-mesaric-mag-a-pth",
        "2026-09-14-oradores",
        "2026-09-14-patrocinadores",
        "2026-09-14-registo-dados-gov",
        "2026-09-14-registo-dre-inicio",
        "2026-09-14-registo-gov-ia"
      ]
    },
    {
      "path": "/api/v1/graph.json",
      "name": "graph",
      "portuguese_source": "dados/grafo.json",
      "summary": "Nodes and edges",
      "description": "Every node names the frozen source it came from; every edge is a Portuguese verb with a distinct named inverse.",
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/ontology.json",
      "name": "ontology",
      "portuguese_source": "dados/ontologia.json",
      "summary": "The grammar the graph obeys",
      "description": "Types, verbs with their readings and inverses, banned verbs, the taxonomy and the published formulas.",
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/people.json",
      "name": "people",
      "portuguese_source": "dados/pessoas.json",
      "summary": "People named on a published list, in their professional capacity",
      "description": "Name, listed role, listed organisation and links, verbatim from the frozen source. Never a biography, never a contact detail. See /notice.",
      "count": 70,
      "items": "/api/v1/people/<id>.json",
      "item_ids": [
        "andreia-gaudencio",
        "paulo-andrez",
        "luis-valente",
        "anmol-goel",
        "karan-setiya",
        "rita-kastrati",
        "luis-gutman",
        "hector-lv",
        "tina-valand",
        "vini-devnani",
        "luiza-castro-rey",
        "nashwa-shah",
        "rita-figueiredo",
        "filipa-faria",
        "ricardo",
        "raffaella-loncao",
        "muhammad-farooq-rathod",
        "zoya-mesaric-mag-a-pth",
        "alexandra-isenegger",
        "viachaslau-smirnou",
        "roman-knorr-duran",
        "akshay-ruparelia",
        "saachin-bhatt",
        "dina-kondratiuk",
        "joao-ramos",
        "thiago-vieira",
        "diego-sampaio",
        "amit-grinvald",
        "janelle-harder",
        "kasia-szczesniak",
        "lisa-rebecca-press",
        "david-graham",
        "igor-nikolaiev",
        "precy-servito",
        "irina-shurmina",
        "jorge-sebastiao",
        "anisha-yadav",
        "lauren-mucklow",
        "max-rodman",
        "sibilla-strupule",
        "mark-paul-haaksman",
        "micael-lopes",
        "satya-morarji",
        "tania-tome",
        "angelee-sidar",
        "ben-lakoff",
        "rita-martins-freire",
        "sebastian-horstmann",
        "sofia-bobrik",
        "pedro-simoes",
        "sylvie-ritt",
        "daniel-grech",
        "elias-flachowsky",
        "kristina-kutan",
        "hudi-shehu",
        "alexandre-daletchine",
        "slavi-slavev",
        "wouter-heijnen",
        "diogo-mendonca",
        "lidija-krickovic",
        "ed-chandler",
        "cintia-costa",
        "olivia-page",
        "olesia-rykova",
        "joaquim-nascimento",
        "daniel-gouveia",
        "nataliia-komarnytska",
        "brian-nogaro",
        "nina-chande",
        "mike-sigal"
      ]
    },
    {
      "path": "/api/v1/companies.json",
      "name": "companies",
      "portuguese_source": "dados/organizacoes.json",
      "summary": "Organisations, derived from the source and never typed",
      "description": "Derived from the organisation field of each speaker card. Placeholder values such as 'Independent' are flagged, not removed.",
      "count": 67,
      "items": "/api/v1/companies/<id>.json",
      "item_ids": [
        "brdge",
        "time-to-rise",
        "351-portuguese-startup-association",
        "abn-amro-bank",
        "accenture",
        "aiffin",
        "angels-way",
        "around-pr-studio",
        "bankless-ventures",
        "brandulogy",
        "bsc-ai-factory",
        "business-network-albania",
        "cosysense",
        "creativity-matter",
        "digiseg",
        "dyrectli-capital",
        "ecox-bombastic-burgh",
        "fast-track-ventures",
        "fiiys-ltd",
        "fio-legal",
        "fio-legal-fractional-freelance-hr",
        "first-ten-advisory",
        "freedom-vas",
        "gacs-ltd-gacsym-ventures",
        "globalfy",
        "growth-geek-unipessoal-lda",
        "humannovate-consulting",
        "ideasoft",
        "ilof",
        "jab-holdings",
        "jci",
        "kapisci",
        "konnect-ai-human-strategy-execution-workspace",
        "ladies-who-talk",
        "lexidy",
        "lexidy-law-boutique-slp",
        "like-no-other",
        "linkilaw-solicitors-cbca-group",
        "lisa-press-consulting",
        "lisbon-business-leaders",
        "many",
        "mvmt-studio",
        "mykor",
        "on-this-planet",
        "ow-ventures-scr",
        "pactum-global",
        "pioneering-people",
        "pr-agency-techwaves",
        "prifly-advisors",
        "roman-knorr",
        "s8-aquisitions",
        "sibillastrupule-com",
        "sigal-ventures",
        "solegency",
        "sotavento-angels-fund",
        "sotavento-invest",
        "soulbranding",
        "startup-summit",
        "time-space",
        "trivevo",
        "upstride-holdings",
        "vntr-capital",
        "what-she-said-limited",
        "zero-risk-startup",
        "zoya-mesaric-private-international-practice",
        "independent",
        "self-employed"
      ]
    },
    {
      "path": "/api/v1/sessions.json",
      "name": "sessions",
      "portuguese_source": "dados/sessoes.json",
      "summary": "The programme, read from the frozen agenda",
      "description": "Titles verbatim, in whatever language the event published them.",
      "count": 15,
      "items": "/api/v1/sessions/<id>.json",
      "item_ids": [
        "welcome-drinks",
        "doors-open-registration-expo",
        "opening-keynote-welcome-to-startup-summit-2026",
        "ai-or-die",
        "the-lp-perspective",
        "the-fundraising-meta-game",
        "lunch-beer-hall-praca-cafe-rooftop-bar",
        "investor-office-hours-founder-booth-investor-passes",
        "founder-social",
        "doors-open-day-2-welcome",
        "day-2-opening-portuguese-unicorn-conversation",
        "what-i-built-with-ai",
        "hardware-meets-software",
        "speed-networking-investor-1-1s-workshops",
        "closing-celebration-vip-sunset-cruise"
      ]
    },
    {
      "path": "/api/v1/events.json",
      "name": "events",
      "portuguese_source": "dados/evento.json",
      "summary": "The event this newsroom's first beat covers",
      "description": null,
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/topics.json",
      "name": "topics",
      "portuguese_source": "dados/temas.json",
      "summary": "Topics verbatim from the source, and tags derived by the lexicon",
      "description": null,
      "count": 70,
      "items": "/api/v1/topics/<id>.json",
      "item_ids": [
        "andreia-gaudencio",
        "paulo-andrez",
        "luis-valente",
        "anmol-goel",
        "karan-setiya",
        "rita-kastrati",
        "luis-gutman",
        "hector-lv",
        "tina-valand",
        "vini-devnani",
        "luiza-castro-rey",
        "nashwa-shah",
        "rita-figueiredo",
        "filipa-faria",
        "ricardo",
        "raffaella-loncao",
        "muhammad-farooq-rathod",
        "zoya-mesaric-mag-a-pth",
        "alexandra-isenegger",
        "viachaslau-smirnou",
        "roman-knorr-duran",
        "akshay-ruparelia",
        "saachin-bhatt",
        "dina-kondratiuk",
        "joao-ramos",
        "thiago-vieira",
        "diego-sampaio",
        "amit-grinvald",
        "janelle-harder",
        "kasia-szczesniak",
        "lisa-rebecca-press",
        "david-graham",
        "igor-nikolaiev",
        "precy-servito",
        "irina-shurmina",
        "jorge-sebastiao",
        "anisha-yadav",
        "lauren-mucklow",
        "max-rodman",
        "sibilla-strupule",
        "mark-paul-haaksman",
        "micael-lopes",
        "satya-morarji",
        "tania-tome",
        "angelee-sidar",
        "ben-lakoff",
        "rita-martins-freire",
        "sebastian-horstmann",
        "sofia-bobrik",
        "pedro-simoes",
        "sylvie-ritt",
        "daniel-grech",
        "elias-flachowsky",
        "kristina-kutan",
        "hudi-shehu",
        "alexandre-daletchine",
        "slavi-slavev",
        "wouter-heijnen",
        "diogo-mendonca",
        "lidija-krickovic",
        "ed-chandler",
        "cintia-costa",
        "olivia-page",
        "olesia-rykova",
        "joaquim-nascimento",
        "daniel-gouveia",
        "nataliia-komarnytska",
        "brian-nogaro",
        "nina-chande",
        "mike-sigal"
      ]
    },
    {
      "path": "/api/v1/lexicon.json",
      "name": "lexicon",
      "portuguese_source": "dados/lexico.json",
      "summary": "The published formula that produces the derived tags",
      "description": "A regular expression per entry, run over the frozen page. A tag says the page contains those words; it is not a characterisation of anybody.",
      "count": 30,
      "items": "/api/v1/lexicon/<id>.json",
      "item_ids": [
        "capital-de-risco",
        "investimento-anjo",
        "fintech",
        "saude",
        "energia",
        "imobiliario",
        "educacao",
        "comercio",
        "ia",
        "ia-generativa",
        "agentes",
        "dados",
        "nuvem",
        "ciberseguranca",
        "hardware",
        "cadeia-de-blocos",
        "escalar",
        "internacionalizar",
        "angariar",
        "saida",
        "produto",
        "sustentabilidade",
        "diaspora",
        "consultoria",
        "juridico",
        "aceleracao",
        "recrutamento",
        "plataforma",
        "aplicacao",
        "api"
      ]
    },
    {
      "path": "/api/v1/changes.json",
      "name": "changes",
      "portuguese_source": "dados/mudancas.json",
      "summary": "What moved between snapshots",
      "description": "A name present in one snapshot and absent from the next is recorded as exactly that. The reason is left blank, never guessed.",
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/articles.json",
      "name": "articles",
      "portuguese_source": "dados/historias.json",
      "summary": "Every article, its state and where its folder is",
      "description": "Derived from the dated folders under /artigos/. An article is published only when the editor of record writes that line.",
      "count": 6,
      "items": "/api/v1/articles/<id>.json",
      "item_ids": [
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica",
        "regulador-designacao-ausente",
        "quantas-startups-sao-de-ia",
        "plano-nacional-centros-de-dados",
        "gigafabricas-de-ia-duzentos-milhoes",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler"
      ]
    },
    {
      "path": "/api/v1/sections.json",
      "name": "sections",
      "portuguese_source": "seccoes/*/seccao.json",
      "summary": "The eight sections and their editorial records",
      "description": "What each section covers, what it can and cannot claim today, which sources are frozen and which did not resolve.",
      "count": 8,
      "items": "/api/v1/sections/<id>.json",
      "item_ids": [
        "empresas",
        "protagonistas",
        "instituicoes",
        "politicas",
        "casos-de-uso",
        "codigo-aberto",
        "diaspora",
        "eventos"
      ]
    },
    {
      "path": "/api/v1/deliveries.json",
      "name": "deliveries",
      "portuguese_source": "dados/entregas.json",
      "summary": "Research deliveries, and what happened to every excerpt",
      "description": "A delivery is leads with provenance, never facts. Each claim carries the result of searching the frozen bytes for the excerpt it cites.",
      "count": 2,
      "items": "/api/v1/deliveries/<id>.json",
      "item_ids": [
        "chatgpt-2026-09-15-politicas-2",
        "chatgpt-pt-newsroom-2026-09-14-politicas"
      ]
    },
    {
      "path": "/api/v1/notice.json",
      "name": "notice",
      "portuguese_source": "dados/aviso.json",
      "summary": "The data-protection notice, as data",
      "description": "Controller, categories held and refused, the three-limb legitimate-interests test, and the unconditional removal route.",
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/team.json",
      "name": "team",
      "portuguese_source": "dados/equipa.json",
      "summary": "The three departments and the editor of record",
      "description": null,
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/documents.json",
      "name": "documents",
      "portuguese_source": "dados/documentos.json",
      "summary": "Every markdown document in this repository",
      "description": null,
      "count": 120,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/agents.json",
      "name": "agents",
      "portuguese_source": "dados/agentes.json",
      "summary": "The named agents that may change this site, and their mandates",
      "description": "One entry per identity, each with a role, a write scope and what it declares in a run record. An agent nobody can name is an anonymous contributor to a publication whose entire argument is knowing who said what.",
      "count": 0,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/transfers.json",
      "name": "transfers",
      "portuguese_source": "dados/transferencias.json",
      "summary": "Evidence frozen by ANOTHER publication, with its provenance",
      "description": "Not in this newsroom's register, and not to be treated as if it were: these bytes were fetched by another publication's fetcher, with its user-agent, at the times in its register. Every SHA-256 is recomputed here; a bundle with one bad hash is refused whole.",
      "count": 1,
      "items": "/api/v1/transfers/<id>.json",
      "item_ids": [
        "newsroom-sgit-ai-2026-09-14"
      ]
    },
    {
      "path": "/api/v1/desk.json",
      "name": "desk",
      "portuguese_source": "dados/redacao.json",
      "summary": "The newsroom floor: benches, their load, and the board",
      "description": "Counted from files that already exist — the issue board, the mail between departments, the run records, and the per-agent work. Nothing here moves anything: a story's state lives in the files of its own folder, and the «publicado» column is the named editor's line and nobody else's.",
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/agent-activity.json",
      "name": "agent-activity",
      "portuguese_source": "dados/comentarios.json",
      "summary": "What every agent did to every article, derived not written",
      "description": "One entry per recorded action, question, verification, gap, outside proposal or editorial decision. Every entry carries a `de` field naming the file and path it was derived from, and the build fails if that path does not resolve. Nothing here was authored for the record: a comment attributed to a model that never wrote it is a claim with a forged source.",
      "count": 95,
      "items": "/api/v1/agent-activity/<id>.json",
      "item_ids": [
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c01",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c02",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c03",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c04",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c05",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c06",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c07",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c08",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c09",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c10",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c11",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c12",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c13",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c14",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c15",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c16",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c17",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c18",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c19",
        "a-agenda-de-ia-tem-32-iniciativas-e-o-diploma-continua-por-ler-c20",
        "gigafabricas-de-ia-duzentos-milhoes-c01",
        "gigafabricas-de-ia-duzentos-milhoes-c02",
        "gigafabricas-de-ia-duzentos-milhoes-c03",
        "gigafabricas-de-ia-duzentos-milhoes-c04",
        "gigafabricas-de-ia-duzentos-milhoes-c05",
        "gigafabricas-de-ia-duzentos-milhoes-c06",
        "gigafabricas-de-ia-duzentos-milhoes-c07",
        "gigafabricas-de-ia-duzentos-milhoes-c08",
        "gigafabricas-de-ia-duzentos-milhoes-c09",
        "gigafabricas-de-ia-duzentos-milhoes-c10",
        "gigafabricas-de-ia-duzentos-milhoes-c11",
        "gigafabricas-de-ia-duzentos-milhoes-c12",
        "gigafabricas-de-ia-duzentos-milhoes-c13",
        "gigafabricas-de-ia-duzentos-milhoes-c14",
        "gigafabricas-de-ia-duzentos-milhoes-c15",
        "gigafabricas-de-ia-duzentos-milhoes-c16",
        "gigafabricas-de-ia-duzentos-milhoes-c17",
        "gigafabricas-de-ia-duzentos-milhoes-c18",
        "gigafabricas-de-ia-duzentos-milhoes-c19",
        "gigafabricas-de-ia-duzentos-milhoes-c20",
        "gigafabricas-de-ia-duzentos-milhoes-c21",
        "plano-nacional-centros-de-dados-c01",
        "plano-nacional-centros-de-dados-c02",
        "plano-nacional-centros-de-dados-c03",
        "plano-nacional-centros-de-dados-c04",
        "plano-nacional-centros-de-dados-c05",
        "plano-nacional-centros-de-dados-c06",
        "plano-nacional-centros-de-dados-c07",
        "plano-nacional-centros-de-dados-c08",
        "plano-nacional-centros-de-dados-c09",
        "plano-nacional-centros-de-dados-c10",
        "plano-nacional-centros-de-dados-c11",
        "plano-nacional-centros-de-dados-c12",
        "plano-nacional-centros-de-dados-c13",
        "plano-nacional-centros-de-dados-c14",
        "plano-nacional-centros-de-dados-c15",
        "plano-nacional-centros-de-dados-c16",
        "plano-nacional-centros-de-dados-c17",
        "plano-nacional-centros-de-dados-c18",
        "plano-nacional-centros-de-dados-c19",
        "plano-nacional-centros-de-dados-c20",
        "plano-nacional-centros-de-dados-c21",
        "quantas-startups-sao-de-ia-c01",
        "quantas-startups-sao-de-ia-c02",
        "quantas-startups-sao-de-ia-c03",
        "quantas-startups-sao-de-ia-c04",
        "quantas-startups-sao-de-ia-c05",
        "quantas-startups-sao-de-ia-c06",
        "quantas-startups-sao-de-ia-c07",
        "regulador-designacao-ausente-c01",
        "regulador-designacao-ausente-c02",
        "regulador-designacao-ausente-c03",
        "regulador-designacao-ausente-c04",
        "regulador-designacao-ausente-c05",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c01",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c02",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c03",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c04",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c05",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c06",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c07",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c08",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c09",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c10",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c11",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c12",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c13",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c14",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c15",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c16",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c17",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c18",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c19",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c20",
        "vinte-e-cinco-milhoes-para-ia-na-administracao-publica-c21"
      ]
    },
    {
      "path": "/api/v1/entities.json",
      "name": "entities",
      "portuguese_source": "dados/entidades.json",
      "summary": "Every graph node that is a thing in the world, with a page",
      "description": "One entry per person, organisation, institution, publisher, topic or place. Each carries where its name appears in the frozen bytes and how often, and whether it is linkable in prose under the published linking formula. Keys are Portuguese because that is what the repository holds; the path is English because the intent is several languages over one set of data.",
      "count": 198,
      "items": "/api/v1/entities/<id>.json",
      "item_ids": [
        "editor-comissao-europeia",
        "editor-diario-da-republica",
        "editor-digitalgov",
        "editor-aicep-portugal-global",
        "editor-autoridade-nacional-de-comunicacoes",
        "editor-portugal-business-news",
        "editor-scaleup-porto",
        "editor-startupevents-org",
        "evento-startup-summit-lisbon-2026",
        "ideia-sustentabilidade",
        "ideia-angariar",
        "ideia-saida",
        "ideia-internacionalizar",
        "instituicao-governo-de-portugal",
        "instituicao-diario-da-republica-eletronico",
        "instituicao-dados-gov-pt",
        "local-beato-innovation-district",
        "org-brdge",
        "org-independent",
        "org-time-to-rise",
        "org-351-portuguese-startup-association",
        "org-abn-amro-bank",
        "org-accenture",
        "org-aiffin",
        "org-angels-way",
        "org-around-pr-studio",
        "org-brandulogy",
        "org-bsc-ai-factory",
        "org-bankless-ventures",
        "org-business-network-albania",
        "org-cosysense",
        "org-creativity-matter",
        "org-digiseg",
        "org-dyrectli-capital",
        "org-ecox-bombastic-burgh",
        "org-fiiys-ltd",
        "org-fast-track-ventures",
        "org-fio-legal",
        "org-fio-legal-fractional-freelance-hr",
        "org-first-ten-advisory",
        "org-freedom-vas",
        "org-gacs-ltd-gacsym-ventures",
        "org-globalfy",
        "org-growth-geek-unipessoal-lda",
        "org-humannovate-consulting",
        "org-ideasoft",
        "org-jab-holdings",
        "org-jci",
        "org-konnect-ai-human-strategy-execution-workspace",
        "org-kapisci",
        "org-lexidy",
        "org-ladies-who-talk",
        "org-lexidy-law-boutique-slp",
        "org-like-no-other",
        "org-linkilaw-solicitors-cbca-group",
        "org-lisa-press-consulting",
        "org-lisbon-business-leaders",
        "org-mvmt-studio",
        "org-many",
        "org-mykor",
        "org-ow-ventures-scr",
        "org-on-this-planet",
        "org-pr-agency-techwaves",
        "org-pactum-global",
        "org-pioneering-people",
        "org-prifly-advisors",
        "org-roman-knorr",
        "org-s8-aquisitions",
        "org-soulbranding",
        "org-self-employed",
        "org-sibillastrupule-com",
        "org-sigal-ventures",
        "org-solegency",
        "org-sotavento-angels-fund",
        "org-sotavento-invest",
        "org-startup-summit",
        "org-time-space",
        "org-trivevo",
        "org-upstride-holdings",
        "org-vntr-capital",
        "org-what-she-said-limited",
        "org-zero-risk-startup",
        "org-zoya-mesaric-private-international-practice",
        "org-ilof",
        "palco-unicorn-stage",
        "palco-impact-stage",
        "pessoa-jorge-sebastiao",
        "pessoa-daniel-grech",
        "pessoa-akshay-ruparelia",
        "pessoa-igor-nikolaiev",
        "pessoa-lisa-rebecca-press",
        "pessoa-sebastian-horstmann",
        "pessoa-tina-valand",
        "pessoa-alexandra-isenegger",
        "pessoa-hector-lv",
        "pessoa-joaquim-nascimento",
        "pessoa-karan-setiya",
        "pessoa-lauren-mucklow",
        "pessoa-lidija-krickovic",
        "pessoa-olesia-rykova",
        "pessoa-precy-servito",
        "pessoa-raffaella-loncao",
        "pessoa-rita-figueiredo",
        "pessoa-saachin-bhatt",
        "pessoa-tania-tome",
        "pessoa-daniel-gouveia",
        "pessoa-david-graham",
        "pessoa-joao-ramos",
        "pessoa-luis-gutman",
        "pessoa-luis-valente",
        "pessoa-luiza-castro-rey",
        "pessoa-mark-paul-haaksman",
        "pessoa-max-rodman",
        "pessoa-rita-martins-freire",
        "pessoa-satya-morarji",
        "pessoa-sibilla-strupule",
        "pessoa-slavi-slavev",
        "pessoa-viachaslau-smirnou",
        "pessoa-vini-devnani",
        "pessoa-ben-lakoff",
        "pessoa-dina-kondratiuk",
        "pessoa-diogo-mendonca",
        "pessoa-ed-chandler",
        "pessoa-elias-flachowsky",
        "pessoa-filipa-faria",
        "pessoa-janelle-harder",
        "pessoa-micael-lopes",
        "pessoa-mike-sigal",
        "pessoa-muhammad-farooq-rathod",
        "pessoa-nashwa-shah",
        "pessoa-nina-chande",
        "pessoa-olivia-page",
        "pessoa-rita-kastrati",
        "pessoa-sylvie-ritt",
        "pessoa-thiago-vieira",
        "pessoa-wouter-heijnen",
        "pessoa-zoya-mesaric-mag-a-pth",
        "pessoa-angelee-sidar",
        "pessoa-irina-shurmina",
        "pessoa-kasia-szczesniak",
        "pessoa-kristina-kutan",
        "pessoa-nataliia-komarnytska",
        "pessoa-roman-knorr-duran",
        "pessoa-amit-grinvald",
        "pessoa-anisha-yadav",
        "pessoa-brian-nogaro",
        "pessoa-cintia-costa",
        "pessoa-diego-sampaio",
        "pessoa-paulo-andrez",
        "pessoa-andreia-gaudencio",
        "pessoa-pedro-simoes",
        "pessoa-sofia-bobrik",
        "pessoa-anmol-goel",
        "pessoa-ricardo",
        "pessoa-alexandre-daletchine",
        "pessoa-hudi-shehu",
        "produto-plataforma",
        "servico-consultoria",
        "servico-juridico",
        "servico-aceleracao",
        "setor-fintech",
        "setor-investimento-anjo",
        "setor-saude",
        "setor-capital-de-risco",
        "setor-comercio",
        "setor-educacao",
        "setor-imobiliario",
        "tecnologia-ia",
        "tecnologia-cadeia-de-blocos",
        "tecnologia-agentes",
        "tecnologia-ciberseguranca",
        "tecnologia-nuvem",
        "tecnologia-ia-generativa",
        "tecnologia-dados",
        "tecnologia-hardware",
        "tema-leadership",
        "tema-founder-journey",
        "tema-ai",
        "tema-future-of-work",
        "tema-fundraising",
        "tema-european-startups",
        "tema-go-to-market",
        "tema-scaling",
        "tema-operations",
        "tema-product-market-fit",
        "tema-mental-health",
        "tema-other",
        "tema-hiring",
        "tema-venture-capital",
        "tema-sales",
        "tema-lp-investor-perspective",
        "tema-go",
        "tema-deep-tech",
        "tema-regulation",
        "tema-climate-tech",
        "tema-pricing",
        "tema-exits-m-a",
        "tema-from-zero-to-funded-angel-investment-playbook"
      ]
    },
    {
      "path": "/api/v1/agents.json",
      "name": "agents",
      "portuguese_source": "dados/agentes.json",
      "summary": "The agent roster: mission, central claim, and what each is not responsible for",
      "description": "Each role in the shape teams.sgit.ai publishes for a ROLE.md, crossed with the shape sgraph.ai publishes for each of its own agents. The central claim is written as a failure condition so it can be disproved, and «not responsible for» is the field without which every role quietly becomes the same role. An agent has two identifiers and the correspondence is in the file: `id` is the mail address, `id_curto` is what the comment records are keyed on.",
      "count": 5,
      "items": "/api/v1/agents/<id>.json",
      "item_ids": [
        "pesquisa-pt",
        "redacao-pt",
        "verificacao-pt",
        "bastidores-pt",
        "dinis-humano"
      ]
    },
    {
      "path": "/api/v1/mail.json",
      "name": "mail",
      "portuguese_source": "dados/correio.json",
      "summary": "Every message between the agents, under Email-FS-lite",
      "description": "RFC 2822 messages in a folder. The state of a message is the folder it sits in and not a field, because a field can disagree with the folder and a folder cannot disagree with itself. Messages are immutable: never edited, never deleted, only moved.",
      "count": 8,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/board.json",
      "name": "board",
      "portuguese_source": "dados/quadro.json",
      "summary": "What each agent has in front of it",
      "description": "Two kinds of card, kept apart. A card under `assuntos` is work the agent opened for itself and carries its own reading of it. A paper issue arrives on a board by the published formula in agents.json and by nothing else — classification is a published formula or it does not happen.",
      "count": null,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/bridges.json",
      "name": "bridges",
      "portuguese_source": "dados/pontes.json",
      "summary": "The append lanes between this static site and the vault",
      "description": "What each lane sends, what it never sends, and which of its three values may be published. No credential is in this file or in any other: the vault id and the append token are handed to a browser at runtime, and the build has a key-shaped-string tripwire that fails if one ever appears.",
      "count": 2,
      "items": "/api/v1/bridges/<id>.json",
      "item_ids": [
        "editor-para-bastidores",
        "observabilidade"
      ]
    },
    {
      "path": "/api/v1/manifest.json",
      "name": "manifest",
      "portuguese_source": "dados/manifesto.json",
      "summary": "Every data file with its SHA-256",
      "description": null,
      "count": 32,
      "items": null,
      "item_ids": null
    },
    {
      "path": "/api/v1/excluded.json",
      "name": "excluded",
      "portuguese_source": "dados/excluidas.json",
      "summary": "Sources that were attempted and did not resolve",
      "description": "Not dropped in silence: a source this newsroom cannot reach is a fact about the public record.",
      "count": 1,
      "items": null,
      "item_ids": null
    }
  ]
}
