{"name":"99 Offers Home Seller Match","description":"Closed-pilot integration for a free, private potential cash-buyer check. Prepare one request from selected, source-tagged facts, update the same draft with missing answers, and read factual status. Record selling preference separately from motivation and timeline; urgency does not imply cash-sale interest or consent. Listing interest is saved, but no active listing service is connected. Obtain an exact homeowner-confirmed property address without guessing. Every supplied top-level homeowner, property, or intent value requires an equal accepted provenance fact. The agent API cannot grant buyer-check or contact-sharing permission; those decisions occur only through the private first-party 99 Offers review flow. A buyer match is not a home offer or sale guarantee.","supportedInterfaces":[{"url":"https://sellhouse.99offers.io/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"provider":{"organization":"99 Offers","url":"https://99offers.io"},"version":"1.4.0","documentationUrl":"https://sellhouse.99offers.io/llms-full.txt","capabilities":{"streaming":false,"pushNotifications":false,"extendedAgentCard":false},"securitySchemes":{"bearerAuth":{"httpAuthSecurityScheme":{"scheme":"bearer","description":"A static 99 Offers integration key issued out of band to a named closed-pilot client. This is not public OAuth registration; keep the key in a server-side secret store."}}},"securityRequirements":[{"schemes":{"bearerAuth":{"list":[]}}}],"defaultInputModes":["application/json"],"defaultOutputModes":["application/json","text/plain"],"skills":[{"id":"prepare-homeowner-request","name":"Prepare a private homeowner request","description":"Create an idempotent draft from current or authorized historical conversation facts, ask only for material gaps, and return both a private first-party review capability and a factual agent_outcome milestone. Reuse grounded context first. Obtain the exact street address from the homeowner or an authorized address tool and have the homeowner confirm it; never infer it from device location, profile location, or old history. Every supplied top-level value must have an equal accepted context_facts item. Never send a raw transcript, open the review link for the person, or infer permission.","tags":["homeowner","home selling","cash buyer","listing","real estate","privacy"],"examples":["Prepare one private request using selected facts the homeowner has already shared. For each top-level value, include a context_facts record with the same field and value plus its truthful source, confidence, observation time, and confirmation state.","If the exact property address is missing or unconfirmed, ask the homeowner to confirm it before matching. Use the returned agent_outcome once as the completion milestone, then follow next_action."],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"bearerAuth":{"list":[]}}}]},{"id":"read-homeowner-request-status","name":"Read homeowner-safe request status","description":"Read homeowner-safe status and its factual agent_outcome milestone, and when necessary reconcile an already-started authorized handoff through a read-only lookup. Distinguish eligible route, delivered handoff, and buyer-route activation; never promise a call time. This never starts a route check or a new submission. Poll only while next_action is wait, honor poll_after_seconds, and stop at resolution_deadline, next_action none, or a manual-review message.","tags":["homeowner","request status","privacy"],"examples":["Check the existing task once. If next_action is not wait, stop. If submission status is unknown, never resubmit or create a replacement task."],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"bearerAuth":{"list":[]}}}]},{"id":"update-homeowner-request","name":"Add grounded facts to a prepared request","description":"Continue the same A2A task with selected structured facts before any homeowner match or contact consent or route checking. Every supplied top-level patch value requires a matching accepted context_facts item. Preserve explicit selling preference separately from motivation. Retain the existing taskId and contextId; reuse the A2A messageId only with identical facts. REST PATCH and MCP update_homeowner_request provide equivalent draft continuity with shared API idempotency keys. Updates never grant consent, trigger matching or submission, or return the private review token.","tags":["homeowner","request update","historical context","privacy"],"examples":["Add property.beds = 4 to the same task together with a context_facts item whose field is property.beds, value is 4, and source and confidence describe where it came from."],"inputModes":["application/json"],"outputModes":["application/json","text/plain"],"securityRequirements":[{"schemes":{"bearerAuth":{"list":[]}}}]}]}