generated: '2026-07-26' method: generated source: openapi/street-co-open-api-openapi.yml, openapi/street-co-property-feed-api-openapi.yml, openapi/street-co-spectre-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: 94 by_action_class: acting: 19 connected: 75 by_consequence: write: 18 read: 75 physical: 1 human_in_the_loop_required: 0 operations: - path: /activity method: post operationId: post-activity 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: /lettings-applicants method: get operationId: get-lettings-applicants x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings-applicants/{applicant_id} method: get operationId: get-lettings-applicants-applicantId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales-applicants method: get operationId: get-sales-applicants x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales-applicants/{applicant_id} method: get operationId: get-sales-applicants-applicantId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /areas method: get operationId: get-areas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /branches method: get operationId: get-branches x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /branches/{branch_id} method: get operationId: get-branch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /brands method: get operationId: get-brands x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /brands/{brand_id} method: get operationId: get-brand x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings-applications/{application_id} method: get operationId: get-lettings-applications-application_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies method: get operationId: get-companies x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /companies/{company_id} method: get operationId: get-companies-companyId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /documents method: post operationId: post-documents 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: /photos/{property_id}/media/{media_id} method: patch operationId: patch-photos-propertyId-imageId 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: /photos/{property_id}/media/{media_id} method: delete operationId: delete-photos-propertyId-imageId 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: /floorplans/{property_id}/media/{media_id} method: delete operationId: delete-floorplans-propertyId-imageId 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: /enquiries method: get operationId: get-enquiries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /enquiries method: post operationId: post-enquiries 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: /enquiries/{enquiry_id} method: get operationId: get-enquiries-enquiryId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /follow-ups method: get operationId: get-follow-ups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /follow-ups method: post operationId: post-follow-ups 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: /todos method: get operationId: get-todos x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /todos method: post operationId: post-todos 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: /todo-types method: get operationId: get-todo-types x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /todo-types/{todo_type_id} method: get operationId: get-todo-types-todoTypeID x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /solicitors method: get operationId: get-solicitors x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /solicitors/{solicitor_id} method: get operationId: get-solicitors-solicitorID x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /landlords method: get operationId: get-landlords x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /landlords/{landlord_id} method: get operationId: get-landlords-landlordId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings-offers method: get operationId: get-lettings-offers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings-offers/{lettings_offer_id} method: get operationId: get-lettings-offers-lettingsOfferId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /maintenance-jobs method: get operationId: get-maintenance-jobs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /maintenance-jobs/{maintenance_job_id} method: get operationId: get-maintenance-job x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /maintenance-requests method: post operationId: post-maintenance-requests 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: /notes method: post operationId: post-notes 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: /people method: get operationId: get-people x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /people/{person_id} method: get operationId: get-people-personId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /people/{person_id} method: patch operationId: patch-people-personId 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: /properties method: get operationId: get-properties x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /properties/{property_id} method: get operationId: get-properties-propertyId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /properties/{property_id} method: patch operationId: patch-properties-propertyId 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: /key-features/{property_id} method: post operationId: post-key-features-property-id 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: /key-features/{property_id}/features/{feature_id} method: delete operationId: delete-key-features-property-features 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-keys method: get operationId: get-property-keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property-keys/{property_key_id} method: get operationId: get-single-property-key x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /questionnaire-responses/{questionnaire_response_id} method: get operationId: get-questionnaire-responses-questionnaireResponseId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales method: get operationId: get-sales x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales/{sale_id} method: get operationId: get-sales-saleId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales-offers method: get operationId: get-sales-offers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales-offers/{sales_offer_id} method: get operationId: get-sales-offers-salesOfferId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenancies method: get operationId: get-tenancies x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenancies/{tenancy_id} method: get operationId: get-tenancies-tenancy_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenants method: get operationId: get-tenants x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tenants/{tenant_id} method: get operationId: get-tenants-tenantId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users method: get operationId: get-users x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /users/{user_id} method: get operationId: get-users-userId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /valuations method: get operationId: get-valuations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /valuations/{valuation_id} method: get operationId: get-valuations-valuationId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /vendors method: get operationId: get-vendors x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /vendors/{vendor_id} method: get operationId: get-vendors-vendorId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /viewings method: get operationId: get-viewings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /viewings/{viewing_id} method: get operationId: get-viewings-viewingId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /interested-applicants method: get operationId: get-interested-applicants x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /interested-applicants/{interested_applicant_id} method: get operationId: get-interested-applicants-interested_applicant_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /inspections method: get operationId: get-inspections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /inspections/{inspection_id} method: get operationId: get-inspections-inspection_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /invoices method: get operationId: get-invoices x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /invoices/{invoice_id} method: get operationId: get-invoices-invoice_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /invoices/{invoice_id} method: patch operationId: patch-invoices-invoiceId 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: /photo-and-measures method: get operationId: get-photo-and-measures x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /photo-and-measures/{photo_and_measure_id} method: get operationId: get-photo-and-measures-photoAndMeasureId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales-instructions method: get operationId: get-sales-instructions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales-instructions/{sales_instruction_id} method: get operationId: get-sales-instructions-salesInstructionId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings-instructions method: get operationId: get-lettings-instructions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings-instructions/{lettings_instruction_id} method: get operationId: get-lettings-instructions-lettingsInstructionId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /move-outs method: get operationId: get-move-outs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /move-outs/{move_out_id} method: get operationId: get-moveOuts-MoveOutId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /esign-documents/{esign_document_id} method: get operationId: get-esign-documents-esign-document-id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /portal-listings/{listing_id} method: get operationId: get-portal-listings-listing-id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /properties/{property} method: get operationId: get-propertyId x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lettings/search method: get operationId: get-lettings-search x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /sales/search method: get operationId: get-sales-search x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /areas method: get operationId: get-areas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /features method: get operationId: get-features x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property-reports/user method: get operationId: get-property-reports-user x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property-reports/reports method: get operationId: get-property-reports-reports x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property-reports/reports method: post operationId: post-property-reports-reports 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-reports/reports/{reportId} method: get operationId: get-property-reports-report x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property-reports/leads method: get operationId: get-property-reports-leads x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /property-reports/leads method: post operationId: post-property-reports-leads 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: /email/contacts method: post operationId: post-email-contacts 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: /email/segments method: get operationId: get-email-segments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /email/segments method: post operationId: post-email-segments 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