{
 "openapi": "3.1.0",
 "info": {
  "title": "Clinica Bellarte API",
  "version": "1.0.0",
  "description": "Die Website bietet eine öffentliche, schreibgeschützte JSON-API unter /api/v1/. Andere Pfade unter /api/ sind in der robots.txt gesperrt und dienen nur der Website selbst. Die Texte dieser Website beschreiben Behandlungen allgemein und ersetzen keine ärztliche Beratung.",
  "contact": {
   "name": "Clinica Bellarte",
   "url": "https://clinicabellarte.de/kontakt/",
   "email": "info@clinicabellarte.de"
  }
 },
 "servers": [
  {
   "url": "https://clinicabellarte.de/api/v1"
  }
 ],
 "paths": {
  "/index.json": {
   "get": {
    "operationId": "getIndex",
    "summary": "Übersicht der API",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Index"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  },
  "/openapi.json": {
   "get": {
    "operationId": "getOpenapi",
    "summary": "OpenAPI-Beschreibung",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OpenApiDocument"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  },
  "/practice.json": {
   "get": {
    "operationId": "getPractice",
    "summary": "Praxis: Adresse, Kontakt, Sprechzeiten",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Practice"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  },
  "/doctors.json": {
   "get": {
    "operationId": "getDoctors",
    "summary": "Fachärztinnen und Fachärzte",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/DoctorList"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  },
  "/doctors/{slug}.json": {
   "get": {
    "operationId": "getDoctorsItem",
    "summary": "Profil",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Doctor"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    },
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string",
       "enum": [
        "argine-azatyan-ernert",
        "dr-med-carsten-ernert"
       ]
      }
     }
    ]
   }
  },
  "/treatments.json": {
   "get": {
    "operationId": "getTreatments",
    "summary": "Alle Behandlungen mit Eckdaten",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/TreatmentList"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  },
  "/treatments/{slug}.json": {
   "get": {
    "operationId": "getTreatmentsItem",
    "summary": "Eine Behandlung",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Treatment"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    },
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string",
       "enum": [
        "aeussere-schamlippen",
        "augenbrauenlifting",
        "bauchdeckenplastik",
        "bauchdeckenstraffung",
        "biostimulatoren",
        "oberes-und-unteres-bodylift",
        "botulinumtoxin-injektionen",
        "bruststraffung",
        "brustvergroesserung",
        "brustverkleinerung",
        "eigenbluttherapie-gegen-haarausfall",
        "eigenbluttherapie",
        "eigenfetttransfer-gesicht",
        "eigenfetttransplantation",
        "fadenlifting",
        "fett-weg-spritze",
        "fettabsaugung-liposculpting",
        "fettabsaugung",
        "gesaessstraffung",
        "gesichtsbehandlungen",
        "gynaekomastie",
        "halsstraffung",
        "hautchirurgie",
        "hyaluronsaeure",
        "hybrid-brustvergroesserung",
        "behandlung-hyperhidrose",
        "implantate",
        "infusionstherapie",
        "karpaltunnelsyndrom",
        "morbus-dupuytren",
        "oberarmstraffung",
        "oberlidstraffung",
        "oberschenkelstraffung",
        "otoplastik",
        "preserve-brustvergroesserung",
        "schamlippenverkleinerung",
        "schnappfinger",
        "sehnenrekonstruktion",
        "tendovaginitis-de-quervain",
        "unterlidstraffung"
       ]
      }
     }
    ]
   }
  },
  "/articles.json": {
   "get": {
    "operationId": "getArticles",
    "summary": "Ratgeber-Artikel",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ArticleList"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  },
  "/faq.json": {
   "get": {
    "operationId": "getFaq",
    "summary": "Häufige Fragen",
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/FaqList"
        }
       }
      }
     },
     "404": {
      "description": "Not Found"
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "Index": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "version": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "language": {
      "type": "string"
     },
     "endpoints": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Endpoint"
      }
     },
     "agents_md": {
      "type": "string"
     },
     "llms_txt": {
      "type": "string"
     },
     "openapi": {
      "type": "string"
     },
     "disclaimer": {
      "type": "string"
     },
     "generated_at": {
      "type": "string"
     }
    },
    "required": [
     "name",
     "version",
     "url",
     "language",
     "endpoints",
     "agents_md",
     "llms_txt",
     "openapi",
     "disclaimer",
     "generated_at"
    ],
    "additionalProperties": false
   },
   "Endpoint": {
    "type": "object",
    "properties": {
     "path": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "description": {
      "type": "string"
     },
     "item_url_template": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "path",
     "url",
     "description",
     "item_url_template"
    ],
    "additionalProperties": false
   },
   "OpenApiDocument": {
    "type": "object",
    "properties": {
     "openapi": {
      "type": "string"
     },
     "info": {
      "type": "object"
     },
     "servers": {
      "type": "array"
     },
     "paths": {
      "type": "object"
     },
     "components": {
      "type": "object"
     }
    },
    "required": [
     "openapi",
     "info",
     "servers",
     "paths",
     "components"
    ],
    "additionalProperties": false
   },
   "Practice": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "legal_name": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "description": {
      "type": "string"
     },
     "address": {
      "$ref": "#/components/schemas/Address"
     },
     "telephone": {
      "type": "string"
     },
     "email": {
      "type": "string"
     },
     "opening_hours": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/OpeningHours"
      }
     },
     "languages": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "booking": {
      "$ref": "#/components/schemas/Booking"
     },
     "memberships": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "type": "string"
      }
     },
     "same_as": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "doctors": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/DoctorRef"
      }
     },
     "source_urls": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "disclaimer": {
      "type": "string"
     },
     "generated_at": {
      "type": "string"
     }
    },
    "required": [
     "name",
     "legal_name",
     "url",
     "description",
     "address",
     "telephone",
     "email",
     "opening_hours",
     "languages",
     "booking",
     "memberships",
     "same_as",
     "doctors",
     "source_urls",
     "disclaimer",
     "generated_at"
    ],
    "additionalProperties": false
   },
   "Address": {
    "type": "object",
    "properties": {
     "street_address": {
      "type": "string"
     },
     "postal_code": {
      "type": "string"
     },
     "locality": {
      "type": "string"
     },
     "region": {
      "type": "string"
     },
     "country": {
      "type": "string"
     }
    },
    "required": [
     "street_address",
     "postal_code",
     "locality",
     "region",
     "country"
    ],
    "additionalProperties": false
   },
   "OpeningHours": {
    "type": "object",
    "properties": {
     "day": {
      "type": "string"
     },
     "opens": {
      "type": "string"
     },
     "closes": {
      "type": "string"
     }
    },
    "required": [
     "day",
     "opens",
     "closes"
    ],
    "additionalProperties": false
   },
   "Booking": {
    "type": "object",
    "properties": {
     "form_url": {
      "type": "string"
     },
     "telephone": {
      "type": "string"
     },
     "email": {
      "type": "string"
     },
     "agents_may_submit": {
      "type": "boolean"
     }
    },
    "required": [
     "form_url",
     "telephone",
     "email",
     "agents_may_submit"
    ],
    "additionalProperties": false
   },
   "DoctorRef": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "api_url": {
      "type": "string"
     }
    },
    "required": [
     "name",
     "url",
     "api_url"
    ],
    "additionalProperties": false
   },
   "DoctorList": {
    "type": "object",
    "properties": {
     "generated_at": {
      "type": "string"
     },
     "count": {
      "type": "integer"
     },
     "doctors": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/DoctorSummary"
      }
     },
     "disclaimer": {
      "type": "string"
     }
    },
    "required": [
     "generated_at",
     "count",
     "doctors",
     "disclaimer"
    ],
    "additionalProperties": false
   },
   "DoctorSummary": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "honorific_prefix": {
      "type": [
       "string",
       "null"
      ]
     },
     "job_title": {
      "type": "string"
     },
     "specialties": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "type": "string"
      }
     },
     "memberships": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "url": {
      "type": "string"
     },
     "image": {
      "type": "string"
     },
     "api_url": {
      "type": "string"
     }
    },
    "required": [
     "slug",
     "name",
     "honorific_prefix",
     "job_title",
     "specialties",
     "memberships",
     "url",
     "image",
     "api_url"
    ],
    "additionalProperties": false
   },
   "Doctor": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "honorific_prefix": {
      "type": [
       "string",
       "null"
      ]
     },
     "given_name": {
      "type": "string"
     },
     "family_name": {
      "type": "string"
     },
     "job_title": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "image": {
      "type": "string"
     },
     "api_url": {
      "type": "string"
     },
     "languages": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "specialties": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "type": "string"
      }
     },
     "memberships": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "qualifications": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Qualification"
      }
     },
     "education": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "awards": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "same_as": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "disclaimer": {
      "type": "string"
     },
     "generated_at": {
      "type": "string"
     }
    },
    "required": [
     "slug",
     "name",
     "honorific_prefix",
     "given_name",
     "family_name",
     "job_title",
     "url",
     "image",
     "api_url",
     "languages",
     "specialties",
     "memberships",
     "qualifications",
     "education",
     "awards",
     "same_as",
     "disclaimer",
     "generated_at"
    ],
    "additionalProperties": false
   },
   "Qualification": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "year": {
      "type": "string"
     },
     "issued_by": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "name",
     "year",
     "issued_by"
    ],
    "additionalProperties": false
   },
   "TreatmentList": {
    "type": "object",
    "properties": {
     "generated_at": {
      "type": "string"
     },
     "count": {
      "type": "integer"
     },
     "treatments": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/TreatmentSummary"
      }
     },
     "disclaimer": {
      "type": "string"
     }
    },
    "required": [
     "generated_at",
     "count",
     "treatments",
     "disclaimer"
    ],
    "additionalProperties": false
   },
   "TreatmentSummary": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "category": {
      "type": "string"
     },
     "category_url": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "api_url": {
      "type": "string"
     },
     "summary": {
      "type": [
       "string",
       "null"
      ]
     },
     "procedure_type": {
      "type": [
       "string",
       "null"
      ]
     },
     "facts": {
      "$ref": "#/components/schemas/Facts"
     }
    },
    "required": [
     "slug",
     "name",
     "category",
     "category_url",
     "url",
     "api_url",
     "summary",
     "procedure_type",
     "facts"
    ],
    "additionalProperties": false
   },
   "Treatment": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string"
     },
     "name": {
      "type": "string"
     },
     "category": {
      "type": "string"
     },
     "category_url": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "api_url": {
      "type": "string"
     },
     "summary": {
      "type": [
       "string",
       "null"
      ]
     },
     "procedure_type": {
      "type": [
       "string",
       "null"
      ]
     },
     "facts": {
      "$ref": "#/components/schemas/Facts"
     },
     "faq": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/QuestionAnswer"
      }
     },
     "risks": {
      "type": [
       "array",
       "null"
      ],
      "items": {
       "$ref": "#/components/schemas/Section"
      }
     },
     "costs": {
      "oneOf": [
       {
        "$ref": "#/components/schemas/Section"
       },
       {
        "type": "null"
       }
      ]
     },
     "related_articles": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/ArticleRef"
      }
     },
     "reviewed_by": {
      "oneOf": [
       {
        "$ref": "#/components/schemas/Reviewer"
       },
       {
        "type": "null"
       }
      ]
     },
     "last_reviewed": {
      "type": [
       "string",
       "null"
      ]
     },
     "disclaimer": {
      "type": "string"
     },
     "generated_at": {
      "type": "string"
     }
    },
    "required": [
     "slug",
     "name",
     "category",
     "category_url",
     "url",
     "api_url",
     "summary",
     "procedure_type",
     "facts",
     "faq",
     "risks",
     "costs",
     "related_articles",
     "reviewed_by",
     "last_reviewed",
     "disclaimer",
     "generated_at"
    ],
    "additionalProperties": false
   },
   "Facts": {
    "type": "object",
    "properties": {
     "duration": {
      "type": [
       "string",
       "null"
      ]
     },
     "anesthesia": {
      "type": [
       "string",
       "null"
      ]
     },
     "stay": {
      "type": [
       "string",
       "null"
      ]
     },
     "downtime": {
      "type": [
       "string",
       "null"
      ]
     },
     "socially_presentable": {
      "type": [
       "string",
       "null"
      ]
     },
     "work_break": {
      "type": [
       "string",
       "null"
      ]
     },
     "durability": {
      "type": [
       "string",
       "null"
      ]
     },
     "sessions": {
      "type": [
       "string",
       "null"
      ]
     },
     "financing": {
      "type": [
       "string",
       "null"
      ]
     },
     "price_from_eur": {
      "type": [
       "integer",
       "null"
      ]
     },
     "price_note": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "duration",
     "anesthesia",
     "stay",
     "downtime",
     "socially_presentable",
     "work_break",
     "durability",
     "sessions",
     "financing",
     "price_from_eur",
     "price_note"
    ],
    "additionalProperties": false
   },
   "QuestionAnswer": {
    "type": "object",
    "properties": {
     "question": {
      "type": "string"
     },
     "answer": {
      "type": "string"
     }
    },
    "required": [
     "question",
     "answer"
    ],
    "additionalProperties": false
   },
   "Section": {
    "type": "object",
    "properties": {
     "heading": {
      "type": "string"
     },
     "text": {
      "type": "string"
     }
    },
    "required": [
     "heading",
     "text"
    ],
    "additionalProperties": false
   },
   "ArticleRef": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string"
     },
     "title": {
      "type": "string"
     },
     "url": {
      "type": "string"
     }
    },
    "required": [
     "slug",
     "title",
     "url"
    ],
    "additionalProperties": false
   },
   "Reviewer": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "url": {
      "type": "string"
     }
    },
    "required": [
     "name",
     "url"
    ],
    "additionalProperties": false
   },
   "ArticleList": {
    "type": "object",
    "properties": {
     "generated_at": {
      "type": "string"
     },
     "count": {
      "type": "integer"
     },
     "articles": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Article"
      }
     },
     "disclaimer": {
      "type": "string"
     }
    },
    "required": [
     "generated_at",
     "count",
     "articles",
     "disclaimer"
    ],
    "additionalProperties": false
   },
   "Article": {
    "type": "object",
    "properties": {
     "slug": {
      "type": "string"
     },
     "title": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "date_published": {
      "type": "string"
     },
     "date_modified": {
      "type": "string"
     },
     "reviewed_by": {
      "oneOf": [
       {
        "$ref": "#/components/schemas/Reviewer"
       },
       {
        "type": "null"
       }
      ]
     },
     "last_reviewed": {
      "type": [
       "string",
       "null"
      ]
     },
     "abstract": {
      "type": "string"
     },
     "related_treatment_url": {
      "type": [
       "string",
       "null"
      ]
     }
    },
    "required": [
     "slug",
     "title",
     "url",
     "date_published",
     "date_modified",
     "reviewed_by",
     "last_reviewed",
     "abstract",
     "related_treatment_url"
    ],
    "additionalProperties": false
   },
   "FaqList": {
    "type": "object",
    "properties": {
     "generated_at": {
      "type": "string"
     },
     "count": {
      "type": "integer"
     },
     "faq": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/FaqEntry"
      }
     },
     "disclaimer": {
      "type": "string"
     }
    },
    "required": [
     "generated_at",
     "count",
     "faq",
     "disclaimer"
    ],
    "additionalProperties": false
   },
   "FaqEntry": {
    "type": "object",
    "properties": {
     "question": {
      "type": "string"
     },
     "answer": {
      "type": "string"
     },
     "url": {
      "type": "string"
     }
    },
    "required": [
     "question",
     "answer",
     "url"
    ],
    "additionalProperties": false
   }
  }
 }
}
