{ "Protocol": "AIXE", "Version": "1.0", "Endpoint": "/aixe/business/get-hours", "DiscoveryRequest": "GET /aixe/business/get-hours/?", "CanonicalHelpTrigger": "GET /aixe/business/get-hours/?", "ActionRequest": "POST /aixe/business/get-hours", "Method": "POST", "ContentType": "application/json; charset=utf-8", "Title": "Get Business Hours", "AuthenticationRequired": false, "AccessType": "Public", "Purpose": "Returns the current seven-day opening schedule to anyone, including visitors without a customer account. This is the schedule displayed on the Contact page and used by administrator order-time validation.", "ThingsYouCanAsk": [ "What are your opening hours?", "Are you open on Sunday?", "What time do you close on Saturday?" ], "DocumentationSource": "AIXEEndpointRegistry", "ProtocolReference": { "ProtocolHome": "http://aixeprotocol.com/", "CanonicalUsageContract": "http://aixeprotocol.com/usage/?", "Whitepaper": "http://aixeprotocol.com/whitepaper/full-spec.html", "Inventor": "Gregory Oglethorpe", "IncludeIn": [ "/aixe.ai starter discovery documents", "Every endpoint self-description returned by GET /endpoint/?" ], "AIInstruction": "Read this live endpoint contract as operational guidance, not merely as a transport schema. Use its purpose, field meanings, business rules, outcomes, and recovery guidance to reason about whether and how to perform the capability." }, "UsageGuidance": { "Role": "Use this to answer opening-hours questions or read the complete current schedule before an owner-approved update.", "CorrectWorkflow": [ "Use this to answer opening-hours questions or read the complete current schedule before an owner-approved update.", "Send POST with an empty JSON object. No account or authentication token is required. Read SuccessCode before reporting hours." ], "DoNotDo": [ "Do not send business variables, keys, filters, or action inputs in the URL or query string.", "Do not infer success from HTTP status alone." ] }, "AIUsageGuidance": { "ContractRole": "This live document teaches an AI what the capability means and how to use it; it is not merely a list of request fields.", "ReasoningInstruction": "Decide whether this capability serves the human\u0027s intent from Purpose and BusinessRules, gather values using each field\u0027s Description and constraints, then interpret the returned SuccessCode before reporting an outcome.", "FieldInstruction": "Field names are transport labels. Their Description, source, constraints, and business meaning explain what information the AI should obtain and why." }, "RequiredFields": {}, "OptionalFields": {}, "BusinessRules": [ "Public and read-only. No login, customer profile, or token is required.", "Only weekly public hours are returned; no internal identifiers or customer details are exposed.", "IsClosed=true means the day is closed. Times use HH:mm in America/Chicago.", "This recurring schedule does not promise inventory, reserve a slot, or represent holiday exceptions.", "Use the owner-only Update Business Hours endpoint to change the schedule." ], "ResponseFields": { "SuccessCode": { "Type": "string", "Description": "SUCCESS means the current complete schedule was returned.", "Required": true, "SubmittedIn": "Response body" }, "Hours": { "Type": "array", "Description": "Exactly seven objects ordered Sunday through Saturday, each with Day and IsClosed. Open days include OpenTime and CloseTime as 24-hour HH:mm strings; closed-day times are omitted.", "Required": true, "SubmittedIn": "Response body" }, "TimeZone": { "Type": "string", "Description": "America/Chicago; schedule times are bakery local wall-clock times, not UTC.", "Required": true, "SubmittedIn": "Response body" } }, "Errors": [ { "SuccessCode": "BUSINESS_RULE_FAILED", "Meaning": "The request was understood but a declared business or workflow rule was not satisfied.", "Recovery": "Explain the governing rule to the human and retry only after the required condition or decision changes.", "Recoverable": true }, { "SuccessCode": "FAILED", "Meaning": "The capability could not complete for an execution failure.", "Recovery": "Read the returned message and error detail. Retry only when the response identifies a recoverable condition.", "Recoverable": false } ], "ActionResponse": { "RequiredResponseFields": [ "SuccessCode" ], "SuccessCodes": [ "SUCCESS" ], "FailureCodes": [ "BUSINESS_RULE_FAILED", "FAILED" ], "NonFinalCodes": [], "MissingOrEmptyResponse": "Treat as FAILED.", "Rule": "The endpoint response is authoritative. Only an exact SuccessCode value listed in SuccessCodes means the business action succeeded; HTTP status alone does not declare the AIXE outcome." } }