{"openapi":"3.0.3","info":{"title":"Martin Kulawik \u2014 AI Agent API","description":"Marketing- und Digitalisierungsberatung f\u00fcr Unternehmen in Deutschland\n\nMachine-readable business data and an inquiry submission endpoint for AI agents. All endpoints are public (no authentication required) and CORS-enabled. Start with \/agent-instructions to understand how to help users contact this business.","version":"1.4.0","contact":{"email":"mk@martinkulawik.de","url":"https:\/\/martinkulawik.de\/"}},"servers":[{"url":"https:\/\/martinkulawik.de\/wp-json\/aio-schema\/v1","description":"Production"}],"paths":{"\/agent-instructions":{"get":{"operationId":"getAgentInstructions","summary":"AI agent guide \u2014 how to help users contact this business","description":"Returns a structured JSON guide for AI agents: what data to collect from the user, how to submit an inquiry, available services, and business hours. Read this first before helping a user get in touch.","tags":["Discovery"],"responses":{"200":{"description":"Agent instructions","content":{"application\/json":{"schema":{"type":"object","properties":{"purpose":{"type":"string"},"business_name":{"type":"string"},"what_to_collect":{"type":"string","description":"Natural-language instructions on what to ask the user before submitting an inquiry"},"inquiry_endpoint":{"type":"object"},"available_services":{"type":"array","items":{"type":"object"}},"business_hours":{"type":"object"},"direct_contact":{"type":"object"}}}}}}}}},"\/inquiry":{"post":{"operationId":"submitInquiry","summary":"Submit a booking or contact inquiry","description":"Submits an inquiry or service booking request on behalf of a user. An email notification is sent to the business owner. Optionally triggers an auto-reply to the submitter.","tags":["Action"],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["name","email","message"],"properties":{"name":{"type":"string","description":"Full name of the person"},"email":{"type":"string","format":"email","description":"Email address"},"message":{"type":"string","description":"Inquiry or service request description"},"service_id":{"type":"string","description":"Name or slug of the service the user is asking about"},"preferred_date":{"type":"string","description":"Preferred date or timeframe, e.g. \"next Monday\""},"phone":{"type":"string","description":"Phone number (optional)"},"submitted_by_agent":{"type":"string","description":"Name of the AI agent submitting on behalf of the user, e.g. \"ChatGPT\""}},"example":{"name":"Jane Doe","email":"jane@example.com","message":"I would like to book a consultation for your web design service.","service_id":"web-design","preferred_date":"next Monday","submitted_by_agent":"ChatGPT"}}}}},"responses":{"201":{"description":"Inquiry received","content":{"application\/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true},"reference":{"type":"string","example":"INQ-A1B2C3D4"},"message":{"type":"string"}}}}}},"400":{"description":"Validation error (missing fields, message too short\/long, too many URLs)"},"429":{"description":"Rate limit exceeded (IP or email)"},"503":{"description":"Inquiry endpoint is disabled"}}}},"\/availability":{"get":{"operationId":"getAvailability","summary":"Real-time open\/closed status","description":"Returns whether the business is open right now, today's hours, and when it next opens. Based on the business hours configured in the plugin. Short cache TTL (5 minutes).","tags":["Business Info"],"responses":{"200":{"description":"Availability status","content":{"application\/json":{"schema":{"type":"object","properties":{"is_open_now":{"type":"boolean"},"current_day":{"type":"string"},"current_time":{"type":"string","example":"14:30"},"timezone":{"type":"string","example":"Europe\/Berlin"},"today":{"type":"object"},"next_open":{"type":"object","nullable":true},"week_schedule":{"type":"object"}}}}}}}}},"\/business-info":{"get":{"operationId":"getBusinessInfo","summary":"Complete business information","description":"Returns all business data: organisation details, contact, address, hours, services\/products, social profiles, payment methods, and more.","tags":["Business Info"],"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","jsonld"],"default":"json"}}],"responses":{"200":{"description":"Business information object"}}}},"\/contact":{"get":{"operationId":"getContact","summary":"Contact information only","description":"Returns email, phone, address, coordinates, timezone, business hours, and additional locations.","tags":["Business Info"],"responses":{"200":{"description":"Contact information"}}}},"\/services":{"get":{"operationId":"getServices","summary":"Available services","description":"Returns manually configured services (excluding WooCommerce products).","tags":["Business Info"],"responses":{"200":{"description":"Services list"}}}},"\/products":{"get":{"operationId":"getProducts","summary":"Products (WooCommerce or manual)","description":"Returns WooCommerce products if WooCommerce is active, otherwise manually configured product-type items.","tags":["Business Info"],"responses":{"200":{"description":"Products list"}}}},"\/schema":{"get":{"operationId":"getSchema","summary":"JSON-LD structured data","description":"Returns the same Schema.org JSON-LD document that is embedded in the site's <head>. Useful when script tags are stripped by the calling agent.","tags":["Business Info"],"responses":{"200":{"description":"JSON-LD schema object"}}}},"\/openapi.json":{"get":{"operationId":"getOpenApiSpec","summary":"This OpenAPI specification","description":"Returns this document. Use the URL of this endpoint when configuring ChatGPT Custom GPT Actions or other agent frameworks.","tags":["Discovery"],"responses":{"200":{"description":"OpenAPI 3.0 specification"}}}},"\/agent-profile":{"get":{"operationId":"getAgentProfile","summary":"Personal\/professional profile","description":"Returns structured profile data about the individual behind this site: job title, roles, areas of expertise, working approach, values, education, target audience, service area, years of experience, and social links. Optimised for AI agent consumption.","tags":["Business Info"],"responses":{"200":{"description":"Profile object","content":{"application\/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"object"},"experienceYears":{"type":"integer","nullable":true},"roles":{"type":"array","items":{"type":"string"}},"specialties":{"type":"array","items":{"type":"string"}},"approach":{"type":"array","items":{"type":"string"}},"services":{"type":"array","items":{"type":"object"}},"audience":{"type":"array","items":{"type":"string"}},"worksAlone":{"type":"boolean","nullable":true},"collaboration":{"type":"string"},"education":{"type":"array","items":{"type":"string"}},"values":{"type":"array","items":{"type":"string"}},"website":{"type":"string","format":"uri"},"contact":{"type":"string"},"linkedin":{"type":"string","format":"uri"}}}}}}}}}}}