{ "Protocol": "AIXE", "Version": "1.0", "Endpoint": "/aixe/contact/submit-inquiry", "DiscoveryRequest": "GET /aixe/contact/submit-inquiry/?", "CanonicalHelpTrigger": "GET /aixe/contact/submit-inquiry/?", "ActionRequest": "POST /aixe/contact/submit-inquiry", "Method": "POST", "ContentType": "application/json; charset=utf-8", "Title": "Submit A Contact Inquiry", "AuthenticationRequired": false, "AccessType": "Public", "Purpose": "Sends one customer-approved inquiry immediately by email. A failed send is logged as a NOC and returns EMAIL_NOT_SENT.", "ThingsYouCanAsk": [ "Ask them about treats for a birthday party.", "Send a catering inquiry for 50 people.", "Please ask someone to call me about a custom order." ], "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": "Gather the complete inquiry and obtain the human\u0027s approval immediately before sending.", "CorrectWorkflow": [ "Gather the complete inquiry and obtain the human\u0027s approval immediately before sending.", "Preserve the human\u0027s meaning and never add claims, commitments, or order details they did not provide." ], "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": { "Name": { "Type": "string", "Description": "The full name of the person making the inquiry.", "Required": true, "SubmittedIn": "JSON body", "MaxLength": 150 }, "Email": { "Type": "string", "Description": "The reply-to email address the business may use.", "Required": true, "SubmittedIn": "JSON body", "Format": "email address", "MaxLength": 254 }, "Phone": { "Type": "string", "Description": "The phone number the business may use to respond.", "Required": true, "SubmittedIn": "JSON body", "MaxLength": 50 }, "Subject": { "Type": "string", "Description": "A concise subject that accurately summarizes the inquiry.", "Required": true, "SubmittedIn": "JSON body", "MaxLength": 200 }, "Message": { "Type": "string", "Description": "The complete inquiry message approved by the human.", "Required": true, "SubmittedIn": "JSON body", "MaxLength": 5000 } }, "OptionalFields": {}, "BusinessRules": [ "The human must approve the final inquiry before it is sent.", "All five required fields must be supplied.", "SUCCESS confirms the mail server accepted the message. It does not guarantee inbox delivery. Failed sends are logged to NOC; no automatic retries." ], "ResponseFields": { "SuccessCode": { "Type": "string", "Description": "The authoritative action outcome. SUCCESS means the mail server accepted the inquiry email.", "Required": true, "SubmittedIn": "Response body" }, "InquiryReceived": { "Type": "boolean", "Description": "True when the inquiry email was accepted by the mail server.", "Required": true, "SubmittedIn": "Response body" }, "SubmittedUtc": { "Type": "string (date-time)", "Description": "The UTC time when the inquiry was submitted.", "Required": true, "SubmittedIn": "Response body" } }, "Errors": [ { "SuccessCode": "VALIDATION_FAILED", "Meaning": "One or more required request values are missing or malformed.", "Recovery": "Use the field descriptions and constraints in this contract, correct the named fields, and retry the same capability.", "Recoverable": true }, { "SuccessCode": "EMAIL_NOT_SENT", "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 }, { "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": [ "VALIDATION_FAILED", "EMAIL_NOT_SENT", "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." } }