Alto (Vebra / Zoopla) · Agentic Access

Alto (Vebra / Zoopla) Agentic Access

x-agentic-access generated

Alto (Vebra / Zoopla) exposes 121 API operations that an AI agent could call, of which 48 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 73 read, 42 write, and 6 physical.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

Real-EstateUnited KingdomPropTechProperty ListingsCRMProperty ManagementRentalsConveyancingEstate AgencyTenancyWebhookEventLettingsSales ProgressionProperty DataReal Estate Software
Operations: 121 Acting: 48 Human-in-the-loop: 0 Method: generated

By consequence

read 73 write 42 physical 6

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
POST /contacts/{contactId}/relationship physical conditional
DELETE /contacts/{contactId}/relationship/{contactRelationshipId} physical conditional
POST /inventory/{propertyId}/charges physical conditional
POST /tenancies/{tenancyId}/charges physical conditional
POST /work-orders physical conditional
PATCH /work-orders/{id} physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-26'
method: generated
source: openapi/alto-api-openapi.json, openapi/zoopla-leads-api-openapi.json, openapi/zoopla-premium-listing-activations-openapi.json,
  openapi/zoopla-weekly-featured-property-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: 121
  by_action_class:
    connected: 73
    acting: 48
  by_consequence:
    read: 73
    write: 42
    physical: 6
  human_in_the_loop_required: 0
operations:
- path: /appointments/{appointmentId}/{instanceId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-appointments-appointmentid-instanceid
    token:
      max-ttl: 3600
    audit: none
- path: /appointments/general
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-appointments-general
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /appointments/general/{appointmentId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-appointments-general-appointmentid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /appointments/negotiators
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-appointments-negotiators
    token:
      max-ttl: 3600
    audit: none
- path: /appointments/valuations
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-appointments-valuations
    token:
      max-ttl: 3600
    audit: none
- path: /appointments/viewings
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-appointments-viewings
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /appointments/viewings/{appointmentId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-appointments-viewings-appointmentid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /parameters/appointment-subtypes
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-parameters-appointment-subtypes
    token:
      max-ttl: 3600
    audit: none
- path: /appraisals
  method: post
  operationId: CreateAppraisal
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-appraisals
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{propertyId}/appraisal
  method: patch
  operationId: PatchAppraisal
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-inventory-propertyid-appraisal
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /clients
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-clients
    token:
      max-ttl: 3600
    audit: none
- path: /branches
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-branches
    token:
      max-ttl: 3600
    audit: none
- path: /branches/{branchId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-branches-branchid
    token:
      max-ttl: 3600
    audit: none
- path: /negotiators
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-negotiators
    token:
      max-ttl: 3600
    audit: none
- path: /negotiators/{negotiatorId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-negotiators-negotiatorid
    token:
      max-ttl: 3600
    audit: none
- path: /contacts
  method: get
  operationId: GetContactsById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-contacts
    token:
      max-ttl: 3600
    audit: none
- path: /contacts
  method: post
  operationId: CreateContact
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-contacts
    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
    scope:
    - alto/route:get-contacts-contactid
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{contactId}
  method: patch
  operationId: UpdateContact
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-contacts-contactid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/applicant-requirements
  method: post
  operationId: CreateApplicantRequirement
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-contacts-contactid-applicant-requirements
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/applicant-requirements/{requirementId}
  method: patch
  operationId: UpdateApplicantRequirement
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-contacts-contactid-applicant-requirements-requirementid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/bank-accounts
  method: get
  operationId: ListBankAccounts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/read:contact_bank_accounts
    - alto/route:get-contacts-contactid-bank-accounts
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{contactId}/forwarding-address
  method: post
  operationId: CreateForwardingAddress
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-contacts-contactid-forwarding-address
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/persons
  method: get
  operationId: GetPersons
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-contacts-contactid-persons
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{contactId}/persons/{personId}
  method: patch
  operationId: UpdatePerson
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-contacts-contactid-persons-personid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/persons/{personId}
  method: get
  operationId: GetPerson
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:patch-contacts-contactid-persons-personid
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{contactId}/preferences
  method: get
  operationId: GetPreferences
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:post-contacts-contactid-preferences
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{contactId}/preferences
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-contacts-contactid-preferences
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/relationship
  method: get
  operationId: GetContactRelationship
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-contacts-contactid-relationship
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/{contactId}/relationship
  method: post
  operationId: CreateContactRelationship
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - alto/route:get-contacts-contactid-relationship
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/{contactId}/relationship/{contactRelationshipId}
  method: delete
  operationId: DeleteContactRelationship
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - alto/route:delete-contacts-contactid-relationship-contactrelationshipid
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /contacts/all
  method: get
  operationId: GetAllContacts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-contacts-all
    token:
      max-ttl: 3600
    audit: none
- path: /contacts/search
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-contacts-search
    token:
      max-ttl: 3600
    audit: none
- path: /owners
  method: get
  operationId: GetOwners
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-owners
    token:
      max-ttl: 3600
    audit: none
- path: /parameters/client-disposal-statuses
  method: get
  operationId: GetClientDisposalStatuses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-parameters-client-disposal-statuses
    token:
      max-ttl: 3600
    audit: none
- path: /parameters/client-intentions
  method: get
  operationId: GetIntentions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-parameters-client-intentions
    token:
      max-ttl: 3600
    audit: none
- path: /parameters/client-positions
  method: get
  operationId: GetPositions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-parameters-client-positions
    token:
      max-ttl: 3600
    audit: none
- path: /parameters/lead-sources
  method: get
  operationId: GetLeadSources
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-parameters-lead-sources
    token:
      max-ttl: 3600
    audit: none
- path: /parameters/property-types
  method: get
  operationId: GetPropertyTypes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-parameters-property-types
    token:
      max-ttl: 3600
    audit: none
- path: /documents
  method: get
  operationId: GetDocumentsByType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-documents
    token:
      max-ttl: 3600
    audit: none
- path: /documents/{documentId}/content
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-documents-documentid-content
    token:
      max-ttl: 3600
    audit: none
- path: /documents/post
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-documents-post
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/documents
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid-documents
    token:
      max-ttl: 3600
    audit: none
- path: /work-orders/{workOrderId}/documents
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-work-orders-workorderid-documents
    token:
      max-ttl: 3600
    audit: none
- path: /file-notes
  method: post
  operationId: CreateFileNote
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-file-notes
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /file-notes/{fileNoteId}
  method: get
  operationId: GetFileNote
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-file-notes-filenoteid
    token:
      max-ttl: 3600
    audit: none
- path: /file-notes/{fileNoteId}
  method: patch
  operationId: PatchFileNote
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-file-notes-filenoteid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /file-notes/search
  method: get
  operationId: SearchFileNotes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-file-notes-search
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{propertyId}/file-notes
  method: get
  operationId: GetFileNotesByProperty
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-propertyid-file-notes
    token:
      max-ttl: 3600
    audit: none
- path: /inventory
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-inventory-inventoryid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/keyset
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-inventory-inventoryid-keyset
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/keyset/{keySetId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:delete-inventory-inventoryid-keyset-keysetid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/keyset/{keySetId}
  method: delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:delete-inventory-inventoryid-keyset-keysetid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/keysets
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid-keysets
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}/owner
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-inventory-inventoryid-owner
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/filter
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-filter
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/items
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-items
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/new
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-inventory-new
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/search
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-search
    token:
      max-ttl: 3600
    audit: none
- path: /leads
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-leads
    token:
      max-ttl: 3600
    audit: none
- path: /leads
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-leads
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /leads/{leadId}
  method: get
  operationId: GetById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-leads-leadid
    token:
      max-ttl: 3600
    audit: none
- path: /leads/{leadId}
  method: patch
  operationId: UpdateLead
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-leads-leadid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /guarantorIds
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-guarantorids
    token:
      max-ttl: 3600
    audit: none
- path: /ReferenceChecks
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-referencechecks
    token:
      max-ttl: 3600
    audit: none
- path: /ReferenceChecks/{referenceCheckId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-referencechecks-referencecheckid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /listing/filter
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-listing-filter
    token:
      max-ttl: 3600
    audit: none
- path: /listing/property/{propertyId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-listing-property-propertyid
    token:
      max-ttl: 3600
    audit: none
- path: /listing/property/{propertyId}/images
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-listing-property-propertyid-images
    token:
      max-ttl: 3600
    audit: none
- path: /listing/property/{propertyId}/images/{imageId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-listing-property-propertyid-images-imageid
    token:
      max-ttl: 3600
    audit: none
- path: /listing/property/{propertyId}/rooms
  method: patch
  operationId: PatchListingRooms
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-listing-property-propertyid-rooms
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /listing/property/{propertyId}/summary
  method: patch
  operationId: PatchListingSummary
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:patch-listing-property-propertyid-summary
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /listing/property/items
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-listing-property-items
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}/media-link
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-inventory-inventoryid-media-link
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /media-item
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-media-item
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /media-item/{mediaItemId}
  method: delete
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:delete-media-item-mediaitemid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /offers/sales-offer/{offerId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-offers-sales-offer-offerid
    token:
      max-ttl: 3600
    audit: none
- path: /referrals/{referralId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-referrals-referralid
    token:
      max-ttl: 3600
    audit: none
- path: /referrals/{referralId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-referrals-referralid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /opt-out-status/{linkedType}/{linkedId}
  method: get
  operationId: GetIntegrationOptOutStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-opt-out-status-linkedtype-linkedid
    token:
      max-ttl: 3600
    audit: none
- path: /partners/integration
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-partners-integration
    token:
      max-ttl: 3600
    audit: none
- path: /partners/integration/status
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-partners-integration-status
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/landlords
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid-landlords
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}/management-events
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid-management-events
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}/suppliers
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid-suppliers
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}/tenancies
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:post-inventory-inventoryid-tenancies
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{inventoryId}/tenancies
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:post-inventory-inventoryid-tenancies
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventory/{inventoryId}/work-orders
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-inventory-inventoryid-work-orders
    token:
      max-ttl: 3600
    audit: none
- path: /inventory/{propertyId}/charges
  method: post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - alto/route:post-inventory-propertyid-charges
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /landlords
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-landlords
    token:
      max-ttl: 3600
    audit: none
- path: /management-events
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-management-events
    token:
      max-ttl: 3600
    audit: none
- path: /management-events
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-management-events
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /management-events/{eventId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-management-events-eventid
    token:
      max-ttl: 3600
    audit: none
- path: /management-events/{eventId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-management-events-eventid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /suppliers
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-suppliers
    token:
      max-ttl: 3600
    audit: none
- path: /suppliers/{supplierId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-suppliers-supplierid
    token:
      max-ttl: 3600
    audit: none
- path: /tenancies
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-tenancies
    token:
      max-ttl: 3600
    audit: none
- path: /tenancies/{tenancyId}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-tenancies-tenancyid
    token:
      max-ttl: 3600
    audit: none
- path: /tenancies/{tenancyId}
  method: patch
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-tenancies-tenancyid
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tenancies/{tenancyId}/charges
  method: post
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - alto/route:post-tenancies-tenancyid-charges
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /tenancies/{tenancyId}/meter-readings
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - alto/route:get-tenancies-tenancyid-meter-readings
    token:
      max-ttl: 3600
    audit: none
- path: /tenancies/{tenancyId}/meter-readings
  method: post
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - alto/route:get-tenancies-tenancyid-meter-readings
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alto-vebra/refs/heads/main/agentic-access/alto-vebra-agentic-access.yml

Work with this as data

Every access contract here is available over the APIs.io API and to AI agents over MCP. Agentic Access is not yet its own endpoint on the v1 API. Reach it through catalog search and the tag graph, or the MCP server.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for agentic access

3 MCP tools reach this
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
Search the catalog
curl "https://apis.io/api/v1/search?q=alto-vebra-agentic-access&limit=10"
Everything under a tag
curl "https://apis.io/api/v1/tags/alto-vebra-agentic-access"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.