PetExec · Agentic Access

PetExec Agentic Access

x-agentic-access generated

PetExec exposes 51 API operations that an AI agent could call, of which 8 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: 43 read and 8 write.

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.

Pet CareBoardingDaycareGroomingTrainingBusiness ManagementPet Business Software
Operations: 51 Acting: 8 Human-in-the-loop: 0 Method: generated

By consequence

read 43 write 8

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/petexec-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: 51
  by_action_class:
    acting: 8
    connected: 43
  by_consequence:
    write: 8
    read: 43
  human_in_the_loop_required: 0
operations:
- path: /token
  method: post
  operationId: getAccessToken
  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: /owner
  method: get
  operationId: listOwners
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /owner/{owner_id}
  method: get
  operationId: getOwner
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /search/owners/{search_criteria}/page/{page_number}/data/{data_per_page}
  method: get
  operationId: searchOwners
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /pet/{pet_id}
  method: get
  operationId: getPet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /pet/{pet_id}
  method: delete
  operationId: deletePet
  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: /pet-type/
  method: get
  operationId: listPetTypes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /breed/pet-type/{pet_type_id}
  method: get
  operationId: listBreedsForPetType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /search/pets/{search_criteria}/page/{page_number}/data/{data_per_page}
  method: get
  operationId: searchPets
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /vet/
  method: get
  operationId: listVets
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /boarding/{boarding_id}
  method: get
  operationId: getBoarding
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /boarding/{boarding_id}
  method: delete
  operationId: deleteFutureBoarding
  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: /boarding/packages/owner/{owner_id}
  method: get
  operationId: getOwnerBoardingPackages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /boarding/services
  method: get
  operationId: listBoardingServices
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /daycare/{daycare_id}
  method: get
  operationId: getDaycare
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /daycare/{daycare_id}
  method: delete
  operationId: deleteFutureDaycare
  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: /daycare/services/
  method: get
  operationId: listDaycareServices
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /grooming/{grooming_id}
  method: get
  operationId: getGrooming
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /grooming/{grooming_id}
  method: delete
  operationId: deleteFutureGrooming
  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: /grooming/groomers
  method: get
  operationId: listGroomers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /grooming/services/
  method: get
  operationId: listGroomingServices
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /scheduled-service/{scheduled_service_id}
  method: delete
  operationId: deleteFutureScheduledService
  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: /scheduled-service/service-types/
  method: get
  operationId: listScheduledServiceTypes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /scheduled-service/services/
  method: get
  operationId: listScheduledServices
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /scheduled-service/services/{service_type_id}
  method: get
  operationId: listServicesByServiceType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/boarding/start/{start_date}/end/{end_date}
  method: get
  operationId: getCompanyBoardingsScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/daycare/start/{start_date}/end/{end_date}
  method: get
  operationId: getCompanyDaycaresScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/grooming/start/{start_date}/end/{end_date}
  method: get
  operationId: getCompanyGroomingsScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/scheduled-service/start/{start_date}/end/{end_date}
  method: get
  operationId: getCompanyScheduledServicesScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/owner/{owner_id}/boarding/start/{start_date}/end/{end_date}
  method: get
  operationId: getOwnerBoardingsScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/owner/{owner_id}/daycare/start/{start_date}/end/{end_date}
  method: get
  operationId: getOwnerDaycaresScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/owner/{owner_id}/grooming/start/{start_date}/end/{end_date}
  method: get
  operationId: getOwnerGroomingsScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /calendar/owner/{owner_id}/scheduled-service/start/{start_date}/end/{end_date}
  method: get
  operationId: getOwnerScheduledServicesScheduled
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /shot/{shot_id}
  method: get
  operationId: getShot
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /shot/{shot_id}
  method: delete
  operationId: deleteShot
  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: /shot/pet-type/{pet_id}
  method: get
  operationId: getShotsForPetType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user-card/owner/{owner_id}
  method: get
  operationId: getOwnerCreditCards
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /user-card/{card_id}/owner/{owner_id}
  method: get
  operationId: getOwnerCreditCard
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /userCard/{card_id}
  method: delete
  operationId: deleteCreditCard
  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: /purchase-history/owner/{owner_id}
  method: get
  operationId: getPurchaseHistory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /report/billing-report/{start_date}/{end_date}/{pay_type}/{owner_portal}
  method: get
  operationId: getBillingReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /report/statistics-report/{start_date}/{end_date}/{taxable_only}
  method: get
  operationId: getStatisticsReport
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /report/statistics-report/{start_date}/{end_date}/breakdown/{pay_type}
  method: get
  operationId: getStatisticsReportByPayType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /report/statistics-report/{start_date}/{end_date}/breakdown/service/{service_id}
  method: get
  operationId: getStatisticsReportByServiceType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /company/locations
  method: get
  operationId: getCompanyLocations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /company/employees/
  method: get
  operationId: getCompanyEmployees
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /company/how-found/
  method: get
  operationId: getAllHowFound
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /preference
  method: get
  operationId: getAllCompanyPreferences
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /preference/{preference_name}
  method: get
  operationId: getCompanyPreferenceValue
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /profile/
  method: get
  operationId: getAuthenticatedUserProfile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /menu
  method: get
  operationId: getMenu
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none