{
  "openapi": "3.1.0",
  "info": {
    "title": "composewith.eth API",
    "version": "1.0.0",
    "description": "Credibly neutral, evidence-backed protocol intelligence for agents and builders."
  },
  "servers": [
    {
      "url": "https://api.composewith.xyz"
    }
  ],
  "paths": {
    "/api/v1/protocols": {
      "get": {
        "summary": "List protocols",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/protocols/{slug}": {
      "get": {
        "summary": "Get a protocol",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/protocols/{slug}/source-provenance": {
      "get": {
        "summary": "Get source provenance for a protocol",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/chains": {
      "get": {
        "summary": "List chain profiles",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/chains/{slug}": {
      "get": {
        "summary": "Get a chain profile",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/chains/{slug}/recommendations": {
      "get": {
        "summary": "Get chain-scoped protocol recommendations",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/chains/{slug}/export": {
      "get": {
        "summary": "Get the full per-chain grant export bundle (scorecard, protocol evidence, intents)",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/initiatives": {
      "get": {
        "summary": "List ecosystem initiatives",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/initiatives/{id}": {
      "get": {
        "summary": "Get an initiative record",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/initiatives/{id}/changes": {
      "get": {
        "summary": "Get reviewed initiative change records",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/initiatives/{id}/intents": {
      "get": {
        "summary": "Get initiative-specific builder intents",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/initiatives/{id}/assess": {
      "post": {
        "summary": "Assess a stack against an initiative",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/search": {
      "get": {
        "summary": "Search protocols",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/compose-stack": {
      "post": {
        "summary": "Recommend a stack for an intent",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/build-plan": {
      "post": {
        "summary": "Generate a cited build plan",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/retrieve": {
      "get": {
        "summary": "Retrieve corpus chunks",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/protocols/{slug}/issues": {
      "get": {
        "summary": "List known issues for a protocol",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/updates": {
      "get": {
        "summary": "Advisories scoped to a declared stack",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/updates/check": {
      "post": {
        "summary": "Check advisories for a stack manifest",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/advisories/{id}": {
      "get": {
        "summary": "Explain one advisory and its evidence",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/advisories/{id}/migration": {
      "get": {
        "summary": "Get a migration and safety verdict for an advisory",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/subscriptions": {
      "post": {
        "summary": "Register a webhook subscription for stack advisories",
        "responses": {
          "201": {
            "description": "created"
          }
        }
      }
    },
    "/api/v1/releases": {
      "get": {
        "summary": "List registry releases",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/source-claims": {
      "get": {
        "summary": "List accepted upstream source claims",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/releases/{version}/diff": {
      "get": {
        "summary": "Get a release diff",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/api/v1/releases/{version}/source-claims": {
      "get": {
        "summary": "Get source claims included in a registry release",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}