{
 "openapi": "3.1.0",
 "info": {
  "title": "Rankr Pro agent API",
  "version": "1.0.0"
 },
 "servers": [
  {
   "url": "https://rankrpro.com"
  }
 ],
 "paths": {
  "/api/agent/get_business_info": {
   "post": {
    "summary": "Rankr Pro business info",
    "description": "Facts about Rankr Pro, a Belgian online marketing agency (online marketingbureau, agence marketing digital, Online Marketing Agentur) specialised in local SEO and Google Maps: contact, VAT number, languages, area served (all of Belgium and beyond) and the free audit. Use this when the user asks who Rankr Pro is or how to reach them.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "language": {
          "type": "string",
          "enum": [
           "nl",
           "fr",
           "de"
          ],
          "default": "nl",
          "description": "Answer language. Defaults to the page language."
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON result"
     }
    }
   }
  },
  "/api/agent/list_services": {
   "post": {
    "summary": "List services",
    "description": "List all Rankr Pro services (SEO agency, local SEO, Google ranking, Google Business Profile optimisation, Google Maps marketing, local SEO audit, reviews, citations, local landing pages) with a one line answer and the page URL.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "language": {
          "type": "string",
          "enum": [
           "nl",
           "fr",
           "de"
          ],
          "default": "nl"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON result"
     }
    }
   }
  },
  "/api/agent/get_service": {
   "post": {
    "summary": "Get one service",
    "description": "Get one service in detail: short answer, concrete deliverables and URL. Pass the id from list_services (seo, local, ranking, gbp, maps, audit, reviews, citations, landing) or a name.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "service": {
          "type": "string",
          "minLength": 2,
          "maxLength": 80,
          "description": "Service id or name."
         },
         "language": {
          "type": "string",
          "enum": [
           "nl",
           "fr",
           "de"
          ],
          "default": "nl"
         }
        },
        "required": [
         "service"
        ]
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON result"
     }
    }
   }
  },
  "/api/agent/search_faq": {
   "post": {
    "summary": "Search FAQ",
    "description": "Search the Rankr Pro FAQ (local SEO, Google ranking, Google Maps, reviews, pricing, guarantee, service area). Returns up to 5 matching questions with answers.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "query": {
          "type": "string",
          "minLength": 2,
          "maxLength": 160
         },
         "language": {
          "type": "string",
          "enum": [
           "nl",
           "fr",
           "de"
          ],
          "default": "nl"
         }
        },
        "required": [
         "query"
        ]
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON result"
     }
    }
   }
  },
  "/api/agent/check_service_area": {
   "post": {
    "summary": "Check service area",
    "description": "Check whether Rankr Pro serves a place. Rankr Pro serves all of Belgium (Flanders, Brussels, Wallonia, German-speaking Community) and works online beyond it. Returns the closest regional page when one exists.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "place": {
          "type": "string",
          "minLength": 2,
          "maxLength": 80
         },
         "language": {
          "type": "string",
          "enum": [
           "nl",
           "fr",
           "de"
          ],
          "default": "nl"
         }
        },
        "required": [
         "place"
        ]
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON result"
     }
    }
   }
  },
  "/api/agent/get_guarantee": {
   "post": {
    "summary": "Guarantee conditions",
    "description": "The exact Rankr Pro guarantee: if the client is not on page 1 of Google for any of the agreed keywords 90 days after implementation, the full setup fee is refunded. Sponsored results do not count.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "language": {
          "type": "string",
          "enum": [
           "nl",
           "fr",
           "de"
          ],
          "default": "nl"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON result"
     }
    }
   }
  }
 }
}