generated: '2026-07-26' method: generated source: openapi/sprift-openapi.json 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: 27 by_action_class: connected: 24 acting: 3 by_consequence: read: 24 write: 3 human_in_the_loop_required: 0 operations: - path: / method: get operationId: HomePage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /user/login method: post operationId: Login 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: /user/logout method: get operationId: Logout x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search method: get operationId: SearchProperties x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search/postcode/{postcode} method: get operationId: SearchPropertiesByPostcode x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /search/myproperties method: get operationId: SearchMyProperties x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/search method: post operationId: SpriftPropertyReport 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: /property/{propertyID} method: get operationId: PropertyDetails x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{uprn}/tv method: get operationId: PropertyDetails-Tv x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/maps method: get operationId: PropertyDetails-Maps x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/tpo method: get operationId: PropertyDetails-TPO x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/listedbuildings method: get operationId: PropertyDetails-LB x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/recentlysold method: get operationId: PropertyDetails-RS x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/currentlyforsale method: get operationId: PropertyDetails-CFS-UO x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{uprn}/{status} method: get operationId: PropertyDetails-Comparables x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{uprn}/materialinformation method: get operationId: PropertyDetails-MaterialInformation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{uprn}/search method: get operationId: Property-RawData x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{uprn}/propertyid method: get operationId: Property-ID x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/priceestimate method: get operationId: Property-Price-Estimate x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/counciltax method: get operationId: Property-Council-Tax x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/epc method: get operationId: Property-EPC x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/school method: get operationId: Property-Nearby-School x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/transport method: get operationId: Property-Nearby-Transport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property/{propertyID}/streetviewmap method: get operationId: PropertyDetails-StreetViewMap x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /share method: post operationId: ShareReport 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: /insider/{outcode} method: get operationId: InsiderActivePropertiesResult x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /insider/{outcode}/withdrawn method: get operationId: InsiderWithdrawnPropertiesResult x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none