Holidu Agentic Access
Holidu exposes 58 API operations that an AI agent could call, of which 29 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: 29 read, 27 write, and 2 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.
By consequence
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.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /v2/apartments/payment-configuration | physical | conditional |
| DELETE | /v2/apartments/payment-configuration | physical | conditional |
Source
Agentic Access
generated: '2026-07-19'
method: generated
source: openapi/holidu-affiliate-api.json, openapi/holidu-connectivity-api.json, openapi/holidu-hapi-with-oauth20.json,
openapi/holidu-security-service-with-client-credentials.json, openapi/holidu-security-service-with-tokens.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: 58
by_action_class:
acting: 29
connected: 29
by_consequence:
write: 27
read: 29
physical: 2
human_in_the_loop_required: 0
operations:
- path: /search
method: post
operationId: search
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: /details
method: post
operationId: details
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: /availabilities
method: post
operationId: availabilities
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: /changed
method: post
operationId: changed
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: /{apartmentId}/los
method: put
operationId: upsertLos
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: /v2/multi-unit
method: get
operationId: getMultiUnit
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/multi-unit
method: post
operationId: upsertMultiUnit
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
scope:
- read
- write
- path: /v2/multi-unit/photos
method: get
operationId: getMultiUnitPhotos
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/multi-unit/photos
method: post
operationId: updateMultiUnitPhotos
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
scope:
- read
- write
- path: /v2/multi-unit/facilities
method: get
operationId: getMultiUnitFacilities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/multi-unit/facilities
method: post
operationId: updateMultiUnitFacilities
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
scope:
- read
- write
- path: /v2/multi-unit/description
method: get
operationId: getMultiUnitDescriptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/multi-unit/description
method: post
operationId: updateMultiUnitDescriptions
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
scope:
- read
- write
- path: /v2/apartment/deactivate
method: put
operationId: deactivateApartment
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
scope:
- read
- write
- path: /v2/apartment/activate
method: put
operationId: activateApartment
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
scope:
- read
- write
- path: /v2/apartment
method: get
operationId: getApartment
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartment
method: post
operationId: upsertApartment
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
scope:
- read
- write
- path: /v2/apartments/information
method: get
operationId: getAllApartmentInformation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartment/validation
method: get
operationId: getApartmentValidation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/description
method: get
operationId: getApartmentDescriptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/description
method: post
operationId: upsertApartmentDescriptions
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
scope:
- read
- write
- path: /v2/facilities
method: get
operationId: getFacilities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/facilities
method: post
operationId: updateFacilities
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
scope:
- read
- write
- path: /v2/facilities/types
method: get
operationId: getFacilityTypes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/facilities/locations
method: get
operationId: getFacilityLocations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/photos
method: get
operationId: getPhotos
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/photos
method: post
operationId: updatePhotos
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
scope:
- read
- write
- path: /v2/reviews
method: get
operationId: getCustomerReviews
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/reviews
method: post
operationId: updateCustomerReviews
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
scope:
- read
- write
- path: /v2/los
method: get
operationId: getLos
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/los
method: post
operationId: upsertLos
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
scope:
- read
- write
- path: /v2/los
method: delete
operationId: deleteLos
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
scope:
- read
- write
- path: /v2/los/rate-ids
method: get
operationId: getLosRateIds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/availability
method: get
operationId: getAvailability
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/availability
method: post
operationId: updateAvailability
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
scope:
- read
- write
- path: /v2/rates
method: get
operationId: getRates
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/rates
method: post
operationId: setRates
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
scope:
- read
- write
- path: /v2/apartments/extracosts
method: get
operationId: getExtraCosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartments/extracosts
method: post
operationId: updateExtraCosts
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
scope:
- read
- write
- path: /v2/discount
method: get
operationId: getDiscountById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/discount
method: post
operationId: upsertDiscount
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
scope:
- read
- write
- path: /v2/discounts
method: get
operationId: getDiscounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartments/terms-and-conditions
method: get
operationId: getTermsAndConditions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartments/terms-and-conditions
method: post
operationId: updateTermsAndConditions
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
scope:
- read
- write
- path: /v2/apartments/payment-configuration
method: get
operationId: getPaymentConfiguration
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartments/payment-configuration
method: post
operationId: updatePaymentConfiguration
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
scope:
- read
- write
- path: /v2/apartments/payment-configuration
method: delete
operationId: deletePaymentConfiguration
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
scope:
- read
- write
- path: /v2/apartments/cancellation-policy
method: get
operationId: getCancellationPolicy
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartments/cancellation-policy
method: post
operationId: updateCancellationConditions
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
scope:
- read
- write
- path: /v2/apartments/cancellation-policy
method: delete
operationId: deleteCancellationPolicy
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
scope:
- read
- write
- path: /v2/apartments/payment-configuration/rate-ids
method: get
operationId: getPaymentConfigurationRateIds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/apartments/cancellation-policy/rate-ids
method: get
operationId: getCancellationPolicyRateIds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /v2/bookings
method: put
operationId: updateBooking
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
scope:
- read
- write
- path: /v2/bookings/cancel
method: post
operationId: cancelBooking
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
scope:
- read
- write
- path: /v2/bookings/details
method: get
operationId: getBookingDetails
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
scope:
- read
- write
- path: /test
method: get
operationId: get-an-apartment
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /test
method: get
operationId: test
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /testa
method: get
operationId: get-access_token-using-refresh_token
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none