{
  "openapi": "3.1.0",
  "info": {
    "title": "Dumaguete Extension API",
    "version": "1.0.0",
    "summary": "Keyless read API about Dumaguete City, Negros Oriental, Philippines, sourced from dumaguete.uk.",
    "description": "Every response carries retrieved_at and license. Records have id, name, question, answer, group, html_url, md_url and source_url. Prices are Philippine pesos; euro amounts are a guide at ₱70.8 = €1 (2026-10-16). Citation: \"Dumaguete Extension, {html_url}\"; cite the fact to \"dumaguete.uk, {source_url}\". For an individual place, fetch https://dumaguete.uk/v1/places.",
    "license": {
      "name": "Attribution licence (RSL)",
      "url": "https://dumaguete-extension.aplusz.app/license.xml"
    },
    "contact": {
      "url": "https://dumaguete-extension.aplusz.app/en/about/#contact"
    }
  },
  "servers": [
    {
      "url": "https://dumaguete-extension.aplusz.app"
    }
  ],
  "externalDocs": {
    "url": "https://dumaguete-extension.aplusz.app/llms-full.txt",
    "description": "Full brief for AI systems"
  },
  "paths": {
    "/v1/facts": {
      "get": {
        "operationId": "getFacts",
        "summary": "What do I need to know about Dumaguete? The 12 key facts.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "What do I need to know about Dumaguete? The 12 key facts.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/topics": {
      "get": {
        "operationId": "getTopics",
        "summary": "Every topic about Dumaguete, or one by id (45 in all).",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Topic id, e.g. rent-room, immigration, storm-signals"
          }
        ],
        "responses": {
          "200": {
            "description": "Every topic about Dumaguete, or one by id (45 in all).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/faq": {
      "get": {
        "operationId": "searchFaq",
        "summary": "Any short question about Dumaguete: search 98 answers.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keywords or a question"
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Topic id"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 10,
              "maximum": 98
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Any short question about Dumaguete: search 98 answers.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/housing": {
      "get": {
        "operationId": "getHousing",
        "summary": "How much is rent in Dumaguete, with utilities, deposit and the neighbourhoods?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "How much is rent in Dumaguete, with utilities, deposit and the neighbourhoods?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/month": {
      "get": {
        "operationId": "getMonth",
        "summary": "What does a month in Dumaguete cost, rent plus bills?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "What does a month in Dumaguete cost, rent plus bills?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/transport": {
      "get": {
        "operationId": "getTransport",
        "summary": "How do I get to Dumaguete and around it?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "How do I get to Dumaguete and around it?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/paperwork": {
      "get": {
        "operationId": "getPaperwork",
        "summary": "Where do I extend a visa in Dumaguete, and which offices are there?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Where do I extend a visa in Dumaguete, and which offices are there?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/health": {
      "get": {
        "operationId": "getHealth",
        "summary": "Which hospitals are open 24 hours in Dumaguete, and what do I dial in an emergency?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Which hospitals are open 24 hours in Dumaguete, and what do I dial in an emergency?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/weather": {
      "get": {
        "operationId": "getWeather",
        "summary": "What is the weather in Dumaguete, and what do the PAGASA storm signals mean?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "What is the weather in Dumaguete, and what do the PAGASA storm signals mean?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/places": {
      "get": {
        "operationId": "getPlaces",
        "summary": "How many places are listed in Dumaguete, by category? (742 verified.)",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "How many places are listed in Dumaguete, by category? (742 verified.)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/forum": {
      "get": {
        "operationId": "getForum",
        "summary": "Where do I ask residents of Dumaguete, and does a post pay?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Where do I ask residents of Dumaguete, and does a post pay?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/marketplace": {
      "get": {
        "operationId": "getMarketplace",
        "summary": "How do I buy or sell safely in Dumaguete?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "How do I buy or sell safely in Dumaguete?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/listing": {
      "get": {
        "operationId": "getListing",
        "summary": "What does it cost to list a business or advertise on dumaguete.uk?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "What does it cost to list a business or advertise on dumaguete.uk?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bike": {
      "get": {
        "operationId": "getBike",
        "summary": "What does it cost to rent a bicycle in Dumaguete?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "What does it cost to rent a bicycle in Dumaguete?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/names": {
      "get": {
        "operationId": "getNames",
        "summary": "How else do people spell or search for Dumaguete? Every search term.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "How else do people spell or search for Dumaguete? Every search term.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/pages": {
      "get": {
        "operationId": "getPages",
        "summary": "Which pages answer what, with HTML, Markdown and source links?",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "Language code, one of en, es, zh, hi, ar, fr, de, pt, ru, ja, ko, it, id, vi, th, tr, pl, nl, uk, fa, bn, tl, ceb. Default en.",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "zh",
                "hi",
                "ar",
                "fr",
                "de",
                "pt",
                "ru",
                "ja",
                "ko",
                "it",
                "id",
                "vi",
                "th",
                "tr",
                "pl",
                "nl",
                "uk",
                "fa",
                "bn",
                "tl",
                "ceb"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Which pages answer what, with HTML, Markdown and source links?",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v1/languages": {
      "get": {
        "operationId": "getLanguages",
        "summary": "In which languages is this answered?",
        "responses": {
          "200": {
            "description": "Languages",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  }
}
