{"openapi":"3.1.0","info":{"title":"Vertize agent API","version":"1.0.0","description":"Public server tools. Same names and parameters as the MCP server at https://www.vertize.io/mcp. No API key. Guide: https://www.vertize.io/developers","contact":{"name":"Vertize","url":"https://www.vertize.io/contact"}},"servers":[{"url":"https://www.vertize.io"}],"paths":{"/api/agent/get_company_info":{"post":{"operationId":"get_company_info","summary":"Company information","description":"Use when the visitor asks who Vertize is, where the office is, how to call or email, which hours apply, or where Vertize works. Returns the name, address, phone, email, office hours, service area, the languages of this website, and the contact page URL. Returns no prices. To book a call, use open_booking in the browser.","tags":["Public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"default":"en","description":"Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.","type":"string","enum":["en","nl","fr","de","vi","th","ru","ko","ar","zh"]}}}}}},"responses":{"200":{"description":"Success. JSON object with ok: true.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/api/agent/list_services":{"post":{"operationId":"list_services","summary":"List services","description":"Use when the visitor asks what Vertize builds. Returns the five pillars (AI agents for hotels, custom CRM, dashboards, websites, SEO and AI visibility), each with a title, a short description and a page URL in the requested language. Call get_service next for one pillar. Returns no prices.","tags":["Public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"default":"en","description":"Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.","type":"string","enum":["en","nl","fr","de","vi","th","ru","ko","ar","zh"]}}}}}},"responses":{"200":{"description":"Success. JSON object with ok: true.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/api/agent/get_service":{"post":{"operationId":"get_service","summary":"Service details","description":"Use when the visitor asks about one pillar from list_services: what the first release includes, what sets the price and the build time, how long it takes, or a question from the page FAQ. Returns the lede, the solution parts, the factors, the lead time and the FAQ. Returns no price amount. An unknown service id is rejected.","tags":["Public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string","enum":["ai-agents-hotels","crm","dashboards","websites","geo"],"description":"Pillar id from list_services: ai-agents-hotels, crm, dashboards, websites or geo."},"language":{"default":"en","description":"Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.","type":"string","enum":["en","nl","fr","de","vi","th","ru","ko","ar","zh"]}},"required":["service"]}}}},"responses":{"200":{"description":"Success. JSON object with ok: true.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/api/agent/list_integrations":{"post":{"operationId":"list_integrations","summary":"Integrations","description":"Use when the visitor asks which property-management, messaging or booking systems Vertize connects to. Returns the same three lists as the integrations page, with labels in the requested language, plus the page URL. It does not check whether a live property is connected. Returns no prices.","tags":["Public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"default":"en","description":"Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.","type":"string","enum":["en","nl","fr","de","vi","th","ru","ko","ar","zh"]}}}}}},"responses":{"200":{"description":"Success. JSON object with ok: true.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/api/agent/search_blog":{"post":{"operationId":"search_blog","summary":"Search the blog","description":"Use when the visitor wants an article. Searches published blog posts and returns at most 10 matches with title, excerpt, URL and date. The query must be 2 to 100 characters. Call it again with a narrower query when the list is long.","tags":["Public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":100,"description":"Words to find in the title or the excerpt. 2 to 100 characters."},"language":{"default":"en","description":"Language of titles, descriptions and URLs. One of en, nl, fr, de, vi, th, ru, ko, ar, zh. Defaults to en.","type":"string","enum":["en","nl","fr","de","vi","th","ru","ko","ar","zh"]}},"required":["query"]}}}},"responses":{"200":{"description":"Success. JSON object with ok: true.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}}},"components":{"responses":{"Error":{"description":"Error object. Codes: VALIDATION, NOT_FOUND, UNKNOWN_TOOL, UNAVAILABLE.","content":{"application/json":{"schema":{"type":"object","required":["ok","code","message"],"properties":{"ok":{"const":false},"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}