generated: '2026-07-26' method: generated source: openapi/apex27-crm-api-openapi.yml, openapi/apex27-portal-api-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 129 by_action_class: connected: 59 acting: 70 by_consequence: read: 59 write: 66 physical: 4 human_in_the_loop_required: 0 operations: - path: /contacts method: get operationId: listContacts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contacts method: post operationId: createContact x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId} method: get operationId: getContact x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contacts/{contactId} method: put operationId: replaceContact x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId} method: patch operationId: patchContact x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId} method: delete operationId: deleteContact x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/call-logs method: get operationId: listContactCallLogs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contacts/{contactId}/call-logs method: post operationId: createContactCallLog x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /call-logs method: post operationId: createCallLog x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/call-logs/{callLogId} method: put operationId: updateContactCallLog x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/call-logs/{callLogId} method: delete operationId: deleteContactCallLog x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/notes method: get operationId: listContactNotes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contacts/{contactId}/notes method: post operationId: createContactNote x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/notes/{noteId} method: get operationId: getContactNote x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contacts/{contactId}/notes/{noteId} method: put operationId: updateContactNote x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/notes/{noteId} method: delete operationId: deleteContactNote x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/referrals method: get operationId: listContactReferrals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contacts/{contactId}/referrals method: post operationId: createContactReferral x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/referrals/{contactReferralId} method: put operationId: updateContactReferral x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contacts/{contactId}/referrals/{contactReferralId} method: delete operationId: deleteContactReferral x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contact-orders method: get operationId: listContactOrders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contact-orders/{orderId} method: get operationId: getContactOrder x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contact-orders/{orderId} method: put operationId: updateContactOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /contact-orders/{orderId} method: delete operationId: deleteContactOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings method: get operationId: listListings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings method: post operationId: createListing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId} method: get operationId: getListing x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId} method: put operationId: replaceListing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId} method: patch operationId: patchListing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId} method: delete operationId: deleteListing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/notes method: get operationId: listListingNotes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/notes method: post operationId: createListingNote x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/notes/{noteId} method: get operationId: getListingNote x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/notes/{noteId} method: put operationId: updateListingNote x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/notes/{noteId} method: delete operationId: deleteListingNote x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/{mediaType} method: get operationId: listListingMedia x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/{mediaType} method: post operationId: addListingMedia x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/rooms method: get operationId: listListingRooms x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/rooms method: post operationId: createListingRoom x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/rooms/{roomId} method: get operationId: getListingRoom x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/rooms/{roomId} method: put operationId: updateListingRoom x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/rooms/{roomId} method: delete operationId: deleteListingRoom x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/links/{linkType} method: get operationId: listListingLinks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/links/{linkType} method: post operationId: createListingLink x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/{collection}/{itemId} method: delete operationId: deleteListingMediaOrLink x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /offers method: get operationId: listOffers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/offers method: get operationId: listListingOffers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/offers method: post operationId: createListingOffer x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/offers/{offerId} method: get operationId: getListingOffer x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/offers/{offerId} method: put operationId: updateListingOffer x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/offers/{offerId} method: delete operationId: deleteListingOffer x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /valuations method: get operationId: listValuations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/valuations method: get operationId: listListingValuations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/valuations method: post operationId: createListingValuation x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/valuations/{valuationId} method: get operationId: getListingValuation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/valuations/{valuationId} method: put operationId: updateListingValuation x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/valuations/{valuationId} method: delete operationId: deleteListingValuation x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /viewings method: get operationId: listViewings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/viewings method: get operationId: listListingViewings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/viewings method: post operationId: createListingViewing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/viewings/{viewingId} method: get operationId: getListingViewing x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/viewings/{viewingId} method: put operationId: updateListingViewing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/viewings/{viewingId} method: delete operationId: deleteListingViewing x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /inspections method: get operationId: listInspections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/inspections method: get operationId: listListingInspections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/inspections method: post operationId: createListingInspection x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/inspections/{inspectionId} method: get operationId: getListingInspection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/inspections/{inspectionId} method: put operationId: updateListingInspection x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/inspections/{inspectionId} method: delete operationId: deleteListingInspection x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/issues method: get operationId: listListingIssues x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/issues method: post operationId: createListingIssue x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/issues/{issueId} method: get operationId: getListingIssue x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/issues/{issueId} method: put operationId: updateListingIssue x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/issues/{issueId} method: delete operationId: deleteListingIssue x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/keys method: get operationId: listListingKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/keys method: post operationId: createListingKey x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/keys/{keyId} method: get operationId: getListingKey x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/keys/{keyId} method: put operationId: updateListingKey x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/keys/{keyId} method: delete operationId: deleteListingKey x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/keys/{keyId}/check-out method: post operationId: checkOutListingKey x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/keys/{keyId}/check-in method: post operationId: checkInListingKey x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listings/{listingId}/onboarding-checks method: get operationId: listListingOnboardingChecks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/onboarding-checks/{onboardingCheckId} method: get operationId: getListingOnboardingCheck x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listings/{listingId}/onboarding-checks/{onboardingCheckId} method: put operationId: updateListingOnboardingCheck x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leads method: get operationId: listLeads x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leads method: post operationId: createLead x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leads/{leadId} method: get operationId: getLead x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /leads/{leadId} method: put operationId: updateLead x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /leads/{leadId} method: delete operationId: deleteLead x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /tasks method: get operationId: listTasks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tasks method: post operationId: createTask x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /tasks/{taskId} method: get operationId: getTask x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tasks/{taskId} method: put operationId: updateTask x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /tasks/{taskId} method: delete operationId: deleteTask x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /webhooks method: get operationId: listWebhooks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks method: post operationId: createWebhook x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /webhooks/{webhookId} method: get operationId: getWebhook x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks/{webhookId} method: put operationId: updateWebhook x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /webhooks/{webhookId} method: delete operationId: deleteWebhook x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /branches method: get operationId: listBranches x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users method: get operationId: listUsers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/{userId} method: get operationId: getUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenancies method: get operationId: listTenancies x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenancies/{tenancyId} method: get operationId: getTenancy x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenancies/{tenancyId} method: patch operationId: patchTenancy x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /completions method: get operationId: listCompletions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /completions/{completionId} method: get operationId: getCompletion x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search-regions method: get operationId: listSearchRegions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search-regions/{searchRegionId} method: get operationId: getSearchRegion x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listing-searches method: get operationId: listListingSearches x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /listing-searches method: post operationId: createListingSearch x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listing-searches/{listingSearchId} method: put operationId: updateListingSearch x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /listing-searches/{listingSearchId} method: delete operationId: deleteListingSearch x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /documents method: post operationId: createDocument x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /notifications method: post operationId: createNotification x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /client-portal/authenticate method: post operationId: authenticateClientPortalContact x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /client-portal/log-in-url method: get operationId: getClientPortalLogInUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /client-portal/sign-in-url method: get operationId: getClientPortalSignInUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /availability/valuations method: get operationId: getValuationAvailability x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /availability/viewings method: get operationId: getViewingAvailability x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /global-search method: get operationId: globalSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /get-listings method: get operationId: getListings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /get-listing method: get operationId: getListing x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /get-search-options method: get operationId: getSearchOptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /get-statistics method: get operationId: getStatistics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /contact method: post operationId: contactAgent x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /request-valuation method: post operationId: requestValuation x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /add-favourite method: post operationId: addFavourite x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /remove-favourite method: post operationId: removeFavourite x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required