{
  "openapi": "3.1.1",
  "info": {
    "title": "Calibrum public content API",
    "description": "Read-only access to Calibrum's published Delphi, Real-Time Delphi and RAND/UCLA guides and the Surveylet Help Center. No account access and no authentication required. Human documentation: https://calibrum.com/developers",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://calibrum.com"
    }
  ],
  "paths": {
    "/api": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "API index",
        "description": "Links to every endpoint and to the OpenAPI description, documentation and MCP server.",
        "operationId": "GetApiIndex",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiIndex"
                }
              }
            }
          }
        }
      }
    },
    "/api/guides": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "List guides",
        "description": "Calibrum's published guides and pages on Delphi methodology, RAND/UCLA, consensus, reporting and services.",
        "operationId": "ListGuides",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PublicGuide"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/guides/{slug}": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "Read a guide",
        "description": "Returns one guide's full text as Markdown. Use the slug index for the home page.",
        "operationId": "GetGuide",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/help": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "List Help Center articles",
        "description": "Every Surveylet Help Center article, optionally filtered by category.",
        "operationId": "ListHelpArticles",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PublicHelpArticle"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/help/search": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "Search the Help Center",
        "description": "Uses the same ranking as the Help Center search box. audience is Administrator or Participant; limit is 1 to 25 (default 10).",
        "operationId": "SearchHelp",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "audience",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PublicHelpMatch"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/help/{slug}": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "Read a Help Center article",
        "description": "Returns one Surveylet Help Center article's full text as Markdown.",
        "operationId": "GetHelpArticle",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiError": {
        "required": [
          "error"
        ],
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          }
        }
      },
      "ApiIndex": {
        "required": [
          "name",
          "description",
          "documentation",
          "openApi",
          "mcpServer",
          "endpoints"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "documentation": {
            "type": "string"
          },
          "openApi": {
            "type": "string"
          },
          "mcpServer": {
            "type": "string"
          },
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiIndexLink"
            }
          }
        }
      },
      "ApiIndexLink": {
        "required": [
          "href",
          "description"
        ],
        "type": "object",
        "properties": {
          "href": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "PublicDocument": {
        "required": [
          "slug",
          "title",
          "url",
          "markdown"
        ],
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "markdown": {
            "type": "string"
          }
        }
      },
      "PublicGuide": {
        "required": [
          "slug",
          "title",
          "url",
          "description"
        ],
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "PublicHelpArticle": {
        "required": [
          "slug",
          "title",
          "url",
          "summary",
          "category",
          "audience"
        ],
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "audience": {
            "type": "string"
          }
        }
      },
      "PublicHelpMatch": {
        "required": [
          "title",
          "url",
          "excerpt",
          "articleSlug",
          "category",
          "audience"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "excerpt": {
            "type": "string"
          },
          "articleSlug": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "audience": {
            "type": "string"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Content"
    }
  ]
}