{
  "openapi": "3.1.0",
  "info": {
    "title": "Sumsar Studio content API",
    "version": "1.0.0",
    "summary": "Read-only access to the studio profile, case studies and FAQ.",
    "description": "A public, unauthenticated, read-only API over the same content the website renders. Served as static JSON, so it is cheap to poll and always matches the published site. The same content is available as an MCP server at https://www.sumsar.dk/mcp and as Markdown via `Accept: text/markdown` on any page URL.",
    "contact": {
      "name": "Sumsar Studio",
      "email": "rasmus@sumsar.dk",
      "url": "https://www.sumsar.dk/"
    },
    "license": {
      "name": "Content © Sumsar Design Studio ApS. Quotation with attribution permitted; model training is not (see /robots.txt).",
      "identifier": "LicenseRef-sumsar-content"
    }
  },
  "servers": [
    {
      "url": "https://www.sumsar.dk",
      "description": "Production"
    }
  ],
  "paths": {
    "/api/studio.json": {
      "get": {
        "operationId": "getStudio",
        "summary": "Studio profile",
        "description": "Services, expertise, founder, location, languages, clients and contact details.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/projects.json": {
      "get": {
        "operationId": "listProjects",
        "summary": "All case studies",
        "description": "Every published case study with its full write-up as Markdown.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "projects": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "slug",
                          "title",
                          "url"
                        ],
                        "properties": {
                          "slug": {
                            "type": "string",
                            "description": "URL-safe identifier, e.g. \"woca-denmark\"."
                          },
                          "title": {
                            "type": "string",
                            "description": "Client or project name."
                          },
                          "headline": {
                            "type": "string",
                            "description": "One-line framing of the engagement."
                          },
                          "service": {
                            "type": "string",
                            "description": "The kind of work, e.g. \"Webflow development\"."
                          },
                          "deliverables": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "featured": {
                            "type": "boolean",
                            "description": "Shown on the front page."
                          },
                          "summary": {
                            "type": "string",
                            "description": "Plain-text summary, at most ~300 characters."
                          },
                          "body": {
                            "type": "string",
                            "description": "The full case study as Markdown."
                          },
                          "url": {
                            "type": "string",
                            "format": "uri",
                            "description": "Canonical HTML page."
                          },
                          "markdownUrl": {
                            "type": "string",
                            "format": "uri",
                            "description": "Markdown representation of the same page."
                          },
                          "liveUrl": {
                            "type": "string",
                            "format": "uri",
                            "description": "The live site that was built, where public."
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/faq.json": {
      "get": {
        "operationId": "listFaqs",
        "summary": "Frequently asked questions",
        "description": "Pricing, timelines, process, platforms and how collaboration works.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "faqs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "question",
                          "answer"
                        ],
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "answer": {
                            "type": "string",
                            "description": "The answer as Markdown."
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Project": {
        "type": "object",
        "required": [
          "slug",
          "title",
          "url"
        ],
        "properties": {
          "slug": {
            "type": "string",
            "description": "URL-safe identifier, e.g. \"woca-denmark\"."
          },
          "title": {
            "type": "string",
            "description": "Client or project name."
          },
          "headline": {
            "type": "string",
            "description": "One-line framing of the engagement."
          },
          "service": {
            "type": "string",
            "description": "The kind of work, e.g. \"Webflow development\"."
          },
          "deliverables": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "featured": {
            "type": "boolean",
            "description": "Shown on the front page."
          },
          "summary": {
            "type": "string",
            "description": "Plain-text summary, at most ~300 characters."
          },
          "body": {
            "type": "string",
            "description": "The full case study as Markdown."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Canonical HTML page."
          },
          "markdownUrl": {
            "type": "string",
            "format": "uri",
            "description": "Markdown representation of the same page."
          },
          "liveUrl": {
            "type": "string",
            "format": "uri",
            "description": "The live site that was built, where public."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Faq": {
        "type": "object",
        "required": [
          "question",
          "answer"
        ],
        "properties": {
          "question": {
            "type": "string"
          },
          "answer": {
            "type": "string",
            "description": "The answer as Markdown."
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}