{
  "meta": {
    "api": "londopy",
    "version": "1.0.0",
    "generated": "2026-09-25T06:35:47.999Z",
    "self": "https://londopy.github.io/api/v1/index.json",
    "docs": "https://londopy.github.io/api/"
  },
  "data": {
    "name": "Londopy API",
    "description": "Everything on londopy.github.io as JSON: the projects and their writeups, the domains they're grouped by, languages and tags, awards, pull requests to other people's projects, blog posts, and the numbers. Static files, rebuilt with the site on every push and every night; read-only, no key, CORS-open.",
    "version": "1.0.0",
    "docs": "https://londopy.github.io/api/",
    "openapi": "https://londopy.github.io/api/openapi.json",
    "endpoints": [
      {
        "path": "/api/v1/index.json",
        "url": "https://londopy.github.io/api/v1/index.json",
        "summary": "Every endpoint, with its URL",
        "group": "Discovery",
        "type": "application/json"
      },
      {
        "path": "/api/openapi.json",
        "url": "https://londopy.github.io/api/openapi.json",
        "summary": "This API, described in OpenAPI 3.1",
        "group": "Discovery",
        "type": "application/json"
      },
      {
        "path": "/api/v1/search.json",
        "url": "https://londopy.github.io/api/v1/search.json",
        "summary": "Everything searchable, in one small file",
        "group": "Discovery",
        "type": "application/json"
      },
      {
        "path": "/api/v1/profile.json",
        "url": "https://londopy.github.io/api/v1/profile.json",
        "summary": "Name, links, contact methods and PGP key",
        "group": "Profile",
        "type": "application/json"
      },
      {
        "path": "/api/v1/now.json",
        "url": "https://londopy.github.io/api/v1/now.json",
        "summary": "What I'm focused on this month",
        "group": "Profile",
        "type": "application/json"
      },
      {
        "path": "/pgp.asc",
        "url": "https://londopy.github.io/pgp.asc",
        "summary": "My PGP public key, ASCII-armored",
        "group": "Profile",
        "type": "application/pgp-keys"
      },
      {
        "path": "/api/v1/projects.json",
        "url": "https://londopy.github.io/api/v1/projects.json",
        "summary": "Every project",
        "group": "Projects",
        "type": "application/json"
      },
      {
        "path": "/api/v1/projects/{name}.json",
        "url": "https://londopy.github.io/api/v1/projects/{name}.json",
        "summary": "One project, with its full writeup",
        "group": "Projects",
        "type": "application/json",
        "params": {
          "name": [
            "nexium",
            "gesture-synth",
            "capture-bypass",
            "HideDesktopApps",
            "clipvault",
            "pc-optimizer",
            "drugdose",
            "vitalscore",
            "Clinical_IQ",
            "akribia",
            "DiresQ",
            "ropesim",
            "apollo-rope-memory",
            "pygeospy",
            "qbit-killswitch",
            "mullvad-wg-monitor",
            "patchnotes",
            "timefuzz",
            "Live_Video_Feed_Facial_Recognition",
            "convo-generator",
            "kto",
            "deadpoint",
            "nxtls",
            "ValoTracker",
            "IEM-Tool-rs",
            "whumpf",
            "filekind",
            "beam",
            "agent-skills",
            "skill-rollcall",
            "mcp-rollcall",
            "settings-effective",
            "git-attribution",
            "statusmith",
            "point-of-origin",
            "the-long-fork"
          ]
        }
      },
      {
        "path": "/api/v1/featured.json",
        "url": "https://londopy.github.io/api/v1/featured.json",
        "summary": "The featured projects",
        "group": "Projects",
        "type": "application/json"
      },
      {
        "path": "/api/v1/awards.json",
        "url": "https://londopy.github.io/api/v1/awards.json",
        "summary": "Hackathon placings and other awards",
        "group": "Projects",
        "type": "application/json"
      },
      {
        "path": "/api/v1/in-progress.json",
        "url": "https://londopy.github.io/api/v1/in-progress.json",
        "summary": "Names reserved, code brewing",
        "group": "Projects",
        "type": "application/json"
      },
      {
        "path": "/api/v1/clusters.json",
        "url": "https://londopy.github.io/api/v1/clusters.json",
        "summary": "The domains projects are grouped by",
        "group": "Taxonomy",
        "type": "application/json"
      },
      {
        "path": "/api/v1/clusters/{id}.json",
        "url": "https://londopy.github.io/api/v1/clusters/{id}.json",
        "summary": "One domain, with its projects in full",
        "group": "Taxonomy",
        "type": "application/json",
        "params": {
          "id": [
            "systems",
            "security",
            "medicine",
            "climbing",
            "geospatial",
            "networking",
            "devtools",
            "claude-tooling",
            "ai",
            "games",
            "audio"
          ]
        }
      },
      {
        "path": "/api/v1/languages.json",
        "url": "https://londopy.github.io/api/v1/languages.json",
        "summary": "Languages, their colours, and the projects using each",
        "group": "Taxonomy",
        "type": "application/json"
      },
      {
        "path": "/api/v1/tags.json",
        "url": "https://londopy.github.io/api/v1/tags.json",
        "summary": "Tags, and the projects carrying each",
        "group": "Taxonomy",
        "type": "application/json"
      },
      {
        "path": "/api/v1/pulls.json",
        "url": "https://londopy.github.io/api/v1/pulls.json",
        "summary": "Pull requests to other people's projects",
        "group": "Activity",
        "type": "application/json"
      },
      {
        "path": "/api/v1/posts.json",
        "url": "https://londopy.github.io/api/v1/posts.json",
        "summary": "Blog posts, newest first",
        "group": "Activity",
        "type": "application/json"
      },
      {
        "path": "/api/v1/stats.json",
        "url": "https://londopy.github.io/api/v1/stats.json",
        "summary": "The numbers, all in one place",
        "group": "Activity",
        "type": "application/json"
      },
      {
        "path": "/api/v1/badges/{metric}.json",
        "url": "https://londopy.github.io/api/v1/badges/{metric}.json",
        "summary": "A shields.io endpoint badge",
        "group": "Badges",
        "type": "application/json",
        "params": {
          "metric": [
            "catalog",
            "projects",
            "domains",
            "stars",
            "pulls",
            "merged",
            "posts"
          ]
        }
      },
      {
        "path": "/api/v1/card.txt",
        "url": "https://londopy.github.io/api/v1/card.txt",
        "summary": "A business card for your terminal",
        "group": "Terminal",
        "type": "text/plain"
      },
      {
        "path": "/api/v1/card.ansi",
        "url": "https://londopy.github.io/api/v1/card.ansi",
        "summary": "The same card, in colour (24-bit ANSI)",
        "group": "Terminal",
        "type": "application/octet-stream"
      }
    ]
  }
}
