MoBA Construction

We are modern building artists.

Agent Inquiry API | MoBA Remodeling

Agent Inquiry API | MoBA Remodeling

FOR ASSISTANTS & INTEGRATORS

Send a homeowner-approved inquiry to MoBA.

This page documents MoBA’s public agent inquiry interface. Homeowners can use the project inquiry guide or website form. The interface supplies public business facts and receives project details for MoBA’s review. It does not negotiate prices, book appointments or access another homeowner’s information.

Discovery and connection

Protocol: A2A 1.0 using JSON-RPC over HTTPS. No API key is required for public information or inquiry submission. All submissions are subject to validation and rate limits.

Agent card · Agent card fallback · Business information · Inquiry JSON schema

POST endpoint: https://mobaconstruction.com/wp-json/moba-agent/v1/a2a
Required headers: Content-Type: application/json and A2A-Version: 1.0.

Permission and required details

Obtain the homeowner’s explicit permission to send their details and receive a project-related reply before setting homeownerConsent to true. Include their name, reply email, project city, useful scope description and your assistant or representative name. Include a broad budget and preferred timing when known; mark undecided details honestly. Source and agent names are recorded as submitter claims, not verified attribution.

Photos may follow the first inquiry but are needed before the initial phone-fit conversation. Up to four HTTPS photo or plan links are accepted. Do not send credentials, signed access tokens, financial account information or sensitive personal documents. The service does not automatically open submitted links.

Example inquiry request

Replace every example value with homeowner-approved details. Use a unique messageId for a new inquiry; keep that same ID and identical details when retrying an uncertain result. The following is documentation only and must not be sent as a real homeowner inquiry.

{
  "jsonrpc": "2.0",
  "id": "example-001",
  "method": "SendMessage",
  "params": {
    "message": {
      "messageId": "replace-with-unique-request-id",
      "role": "ROLE_USER",
      "parts": [
        {
          "data": {
            "operation": "submit_inquiry",
            "homeownerName": "Example Homeowner",
            "replyEmail": "homeowner@example.com",
            "projectCity": "Peoria",
            "projectScope": "Kitchen layout, cabinetry and lighting remodel.",
            "budget": "Undecided",
            "timing": "Planning a future project",
            "agentName": "Your assistant or integration name",
            "source": "Homeowner-provided discovery source",
            "homeownerConsent": true
          }
        }
      ]
    }
  }
}

Read the result before taking another action

Responses are direct A2A messages containing text and structured data. information returns business facts and the inquiry schema. needs_input identifies missing details; no inquiry is stored or sent. received supplies a private intake receipt ID and a duplicate flag. Retain that receipt and do not repeat the inquiry through the form or email. Receipt means recorded for review; it does not mean qualified, accepted, booked or priced.

notificationStatus is mail_transport_accepted, pending or stored_for_review. Transport acceptance does not prove inbox delivery. MoBA keeps a private receipt for reconciliation. Delivery uncertainty does not require a second submission with a different ID.

For information only, send a text part or a data part containing {"operation":"get_business_info"}. No homeowner data or permission assertion is needed for this read-only request. Each reply is self-contained; the service does not retain a conversational memory.

Retries, limits and supported operations

Supported operations are SendMessage and an empty ListTasks response. Inquiries are private receipts, not public A2A tasks: GetTask and CancelTask return task-not-found. Streaming, push notifications, file parts, batches and notifications without a JSON-RPC ID are unsupported.

Requests are limited to 16 KiB, with up to eight text/data parts and one structured inquiry object. Text fields accept plain text within the published schema limits; the server additionally enforces UTF-8 byte limits. Per-IP requests are limited to 120 per hour, new inquiries to 20 per IP per hour, three per reply address per day and 100 total per day. Limits use fixed windows and may be reduced if abuse occurs.

Exact retries return the existing receipt. Identical normalized inquiry details are deduplicated while the receipt is retained. Reusing a message ID with different details returns HTTP 409. Correct validation errors before retrying. For HTTP 429, honor Retry-After and avoid repeated attempts; a daily limit may require waiting until the following day. For a network error or HTTP 503, retry with the same message ID and unchanged inquiry.

Privacy and follow-up

Details are stored privately on MoBA’s WordPress site and sent to MoBA’s business mailbox for project follow-up. They are not published or available through a customer lookup endpoint. The submitter’s consent assertion and contact ownership are not independently verified. An inquiry does not subscribe the homeowner to marketing email.

The plugin removes successfully notified intake copies after 30 days through WordPress’s scheduled cleanup; unresolved delivery records remain for reconciliation. Email correspondence and MoBA’s project records are separate. Contact mobaconstructionteam@gmail.com for questions about submitted details.

MoBA verifies service-area fit, project fit and availability. The process begins with a phone-fit conversation, then a paid site consultation when appropriate and a project-specific design and preconstruction agreement. No automatic prices, fee credits, appointment times or construction starts are promised.

Project inquiry guide · MoBA’s design-build process · A2A protocol specification