{
    "openapi": "3.1.0",
    "info": {
        "title": "API Pianeta Ottici",
        "version": "1.0.0",
        "description": "Ricerca fra 12978 ottici, optometristi, oculisti e centri oculistici italiani. Pubblica, in sola lettura, senza autenticazione. Restituisce solo dati gia' visibili sulle pagine del sito.",
        "contact": {
            "url": "https://pianetaottici.it/"
        }
    },
    "servers": [
        {
            "url": "https://pianetaottici.it/wp-json/pianetaottici/v1"
        }
    ],
    "paths": {
        "/ottici": {
            "get": {
                "summary": "Cerca attivita",
                "description": "Filtra per comune, regione, categoria e servizio. I luoghi si passano per nome (\"Torino\", \"Piemonte\"), non per slug.",
                "parameters": [
                    {
                        "name": "comune",
                        "in": "query",
                        "required": false,
                        "description": "Nome del comune",
                        "schema": {
                            "type": "string"
                        },
                        "example": "Torino"
                    },
                    {
                        "name": "regione",
                        "in": "query",
                        "required": false,
                        "description": "Nome della regione",
                        "schema": {
                            "type": "string"
                        },
                        "example": "Piemonte"
                    },
                    {
                        "name": "categoria",
                        "in": "query",
                        "required": false,
                        "description": "Slug o nome della categoria",
                        "schema": {
                            "type": "string"
                        },
                        "example": "ottico"
                    },
                    {
                        "name": "servizio",
                        "in": "query",
                        "required": false,
                        "description": "Slug o nome del servizio",
                        "schema": {
                            "type": "string"
                        },
                        "example": "parcheggio-accessibile-in-sedia-a-rotelle"
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "Ricerca libera sul nome dell'attivita",
                        "schema": {
                            "type": "string"
                        },
                        "example": "salmoiraghi"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "description": "Risultati per pagina, massimo 50",
                        "schema": {
                            "type": "integer",
                            "default": 20,
                            "minimum": 1,
                            "maximum": 50
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Pagina dei risultati",
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Elenco di attivita con totale e paginazione"
                    },
                    "404": {
                        "description": "Luogo, categoria o servizio non trovato"
                    }
                }
            }
        },
        "/luoghi": {
            "get": {
                "summary": "Regioni, oppure i comuni di una regione",
                "description": "Senza parametri restituisce le 20 regioni con il numero di attivita. Con ?regione=Piemonte restituisce i suoi comuni.",
                "parameters": [
                    {
                        "name": "regione",
                        "in": "query",
                        "required": false,
                        "description": "Nome della regione",
                        "schema": {
                            "type": "string"
                        },
                        "example": "Piemonte"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Elenco di luoghi con conteggi"
                    }
                }
            }
        },
        "/categorie": {
            "get": {
                "summary": "Categorie disponibili",
                "responses": {
                    "200": {
                        "description": "Elenco di categorie con conteggi"
                    }
                }
            }
        }
    }
}