Open Connectivity for Tours, Activities, and Attractions OCTO API Specification

OCTO (Open Connectivity for Tours, Activities, and Attractions) is an open standard API specification for the in-destination experiences sector of the travel industry. The standard defines agreed-upon schemas, endpoints, and capabilities commonly needed when connecting platforms, resellers, OTAs, and other technologies in tours, activities, and attractions. OCTO is open source. Available to anyone who wants to use it. You do not need to be a member to use this specification in your business.

Run with Naftiko OctoAPI

What You Can Do

GET
Get supplier — Open Connectivity for Tours, Activities, and Attractions Get Supplier
/supplier
GET
Get products — Open Connectivity for Tours, Activities, and Attractions Get Products
/products
GET
Get products id — Open Connectivity for Tours, Activities, and Attractions Get Product
/products/{id}
POST
Post availability calendar — Open Connectivity for Tours, Activities, and Attractions Availability Calendar
/availability/calendar
POST
Post availability — Open Connectivity for Tours, Activities, and Attractions Availability Check
/availability
POST
Post bookings — Open Connectivity for Tours, Activities, and Attractions Booking Reservation
/bookings
GET
Get bookings — Open Connectivity for Tours, Activities, and Attractions Get Bookings
/bookings
POST
Post bookings uuid confirm — Open Connectivity for Tours, Activities, and Attractions Booking Confirmation
/bookings/{uuid}/confirm
POST
Delete bookings uuid — Open Connectivity for Tours, Activities, and Attractions Booking Cancellation
/bookings/{uuid}/cancel
GET
Get bookings uuid — Open Connectivity for Tours, Activities, and Attractions Get Booking
/bookings/{uuid}
PATCH
Patch bookings uuid — Open Connectivity for Tours, Activities, and Attractions Booking Update
/bookings/{uuid}
POST
Post bookings uuid extend — Open Connectivity for Tours, Activities, and Attractions Extend Reservation
/bookings/{uuid}/extend

MCP Tools

get-supplier

Open Connectivity for Tours, Activities, and Attractions Get Supplier

read-only idempotent
get-products

Open Connectivity for Tours, Activities, and Attractions Get Products

read-only idempotent
get-products-id

Open Connectivity for Tours, Activities, and Attractions Get Product

read-only idempotent
post-availability-calendar

Open Connectivity for Tours, Activities, and Attractions Availability Calendar

post-availability

Open Connectivity for Tours, Activities, and Attractions Availability Check

post-bookings

Open Connectivity for Tours, Activities, and Attractions Booking Reservation

get-bookings

Open Connectivity for Tours, Activities, and Attractions Get Bookings

read-only idempotent
post-bookings-uuid-confirm

Open Connectivity for Tours, Activities, and Attractions Booking Confirmation

delete-bookings-uuid

Open Connectivity for Tours, Activities, and Attractions Booking Cancellation

get-bookings-uuid

Open Connectivity for Tours, Activities, and Attractions Get Booking

read-only idempotent
patch-bookings-uuid

Open Connectivity for Tours, Activities, and Attractions Booking Update

post-bookings-uuid-extend

Open Connectivity for Tours, Activities, and Attractions Extend Reservation

Capability Spec

octo-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Open Connectivity for Tours, Activities, and Attractions OCTO API Specification
  description: OCTO (Open Connectivity for Tours, Activities, and Attractions) is an open standard API specification for the
    in-destination experiences sector of the travel industry. The standard defines agreed-upon schemas, endpoints, and capabilities
    commonly needed when connecting platforms, resellers, OTAs, and other technologies in tours, activities, and attractions.
    OCTO is open source. Available to anyone who wants to use it. You do not need to be a member to use this specification
    in your business.
  tags:
  - Octo
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: octo
    baseUri: https://api.example.com/octo
    description: Open Connectivity for Tours, Activities, and Attractions OCTO API Specification HTTP API.
    authentication:
      type: bearer
      token: '{{OCTO_TOKEN}}'
    resources:
    - name: supplier
      path: /supplier
      operations:
      - name: get-supplier
        method: GET
        description: Open Connectivity for Tours, Activities, and Attractions Get Supplier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products
      path: /products
      operations:
      - name: get-products
        method: GET
        description: Open Connectivity for Tours, Activities, and Attractions Get Products
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: products-id
      path: /products/{id}
      operations:
      - name: get-products-id
        method: GET
        description: Open Connectivity for Tours, Activities, and Attractions Get Product
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
          description: The product id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: availability-calendar
      path: /availability/calendar
      operations:
      - name: post-availability-calendar
        method: POST
        description: Open Connectivity for Tours, Activities, and Attractions Availability Calendar
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: availability
      path: /availability
      operations:
      - name: post-availability
        method: POST
        description: Open Connectivity for Tours, Activities, and Attractions Availability Check
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bookings
      path: /bookings
      operations:
      - name: post-bookings
        method: POST
        description: Open Connectivity for Tours, Activities, and Attractions Booking Reservation
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Required field on all POST requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-bookings
        method: GET
        description: Open Connectivity for Tours, Activities, and Attractions Get Bookings
        inputParameters:
        - name: resellerReference
          in: query
          type: string
          description: The reseller reference on the booking
        - name: supplierReference
          in: query
          type: string
          description: The reference provided by the supplier
        - name: localDate
          in: query
          type: string
          description: All bookings made for a specific date
        - name: localDateStart
          in: query
          type: string
          description: First date of a date range search
        - name: localDateEnd
          in: query
          type: string
          description: Last date of a date range search
        - name: productId
          in: query
          type: string
          description: The product id to filter by
        - name: optionId
          in: query
          type: string
          description: The option id to filter by
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bookings-uuid-confirm
      path: /bookings/{uuid}/confirm
      operations:
      - name: post-bookings-uuid-confirm
        method: POST
        description: Open Connectivity for Tours, Activities, and Attractions Booking Confirmation
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Required field on all POST requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bookings-uuid-cancel
      path: /bookings/{uuid}/cancel
      operations:
      - name: delete-bookings-uuid
        method: POST
        description: Open Connectivity for Tours, Activities, and Attractions Booking Cancellation
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Required field on all DELETE requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bookings-uuid
      path: /bookings/{uuid}
      operations:
      - name: get-bookings-uuid
        method: GET
        description: Open Connectivity for Tours, Activities, and Attractions Get Booking
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: patch-bookings-uuid
        method: PATCH
        description: Open Connectivity for Tours, Activities, and Attractions Booking Update
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Required field on all PATCH requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bookings-uuid-extend
      path: /bookings/{uuid}/extend
      operations:
      - name: post-bookings-uuid-extend
        method: POST
        description: Open Connectivity for Tours, Activities, and Attractions Extend Reservation
        inputParameters:
        - name: Content-Type
          in: header
          type: string
          description: Required field on all POST requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: octo-rest
    description: REST adapter for Open Connectivity for Tours, Activities, and Attractions OCTO API Specification.
    resources:
    - path: /supplier
      name: get-supplier
      operations:
      - method: GET
        name: get-supplier
        description: Open Connectivity for Tours, Activities, and Attractions Get Supplier
        call: octo.get-supplier
        outputParameters:
        - type: object
          mapping: $.
    - path: /products
      name: get-products
      operations:
      - method: GET
        name: get-products
        description: Open Connectivity for Tours, Activities, and Attractions Get Products
        call: octo.get-products
        outputParameters:
        - type: object
          mapping: $.
    - path: /products/{id}
      name: get-products-id
      operations:
      - method: GET
        name: get-products-id
        description: Open Connectivity for Tours, Activities, and Attractions Get Product
        call: octo.get-products-id
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /availability/calendar
      name: post-availability-calendar
      operations:
      - method: POST
        name: post-availability-calendar
        description: Open Connectivity for Tours, Activities, and Attractions Availability Calendar
        call: octo.post-availability-calendar
        outputParameters:
        - type: object
          mapping: $.
    - path: /availability
      name: post-availability
      operations:
      - method: POST
        name: post-availability
        description: Open Connectivity for Tours, Activities, and Attractions Availability Check
        call: octo.post-availability
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings
      name: post-bookings
      operations:
      - method: POST
        name: post-bookings
        description: Open Connectivity for Tours, Activities, and Attractions Booking Reservation
        call: octo.post-bookings
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings
      name: get-bookings
      operations:
      - method: GET
        name: get-bookings
        description: Open Connectivity for Tours, Activities, and Attractions Get Bookings
        call: octo.get-bookings
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/{uuid}/confirm
      name: post-bookings-uuid-confirm
      operations:
      - method: POST
        name: post-bookings-uuid-confirm
        description: Open Connectivity for Tours, Activities, and Attractions Booking Confirmation
        call: octo.post-bookings-uuid-confirm
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/{uuid}/cancel
      name: delete-bookings-uuid
      operations:
      - method: POST
        name: delete-bookings-uuid
        description: Open Connectivity for Tours, Activities, and Attractions Booking Cancellation
        call: octo.delete-bookings-uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/{uuid}
      name: get-bookings-uuid
      operations:
      - method: GET
        name: get-bookings-uuid
        description: Open Connectivity for Tours, Activities, and Attractions Get Booking
        call: octo.get-bookings-uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/{uuid}
      name: patch-bookings-uuid
      operations:
      - method: PATCH
        name: patch-bookings-uuid
        description: Open Connectivity for Tours, Activities, and Attractions Booking Update
        call: octo.patch-bookings-uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/{uuid}/extend
      name: post-bookings-uuid-extend
      operations:
      - method: POST
        name: post-bookings-uuid-extend
        description: Open Connectivity for Tours, Activities, and Attractions Extend Reservation
        call: octo.post-bookings-uuid-extend
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: octo-mcp
    transport: http
    description: MCP adapter for Open Connectivity for Tours, Activities, and Attractions OCTO API Specification for AI agent
      use.
    tools:
    - name: get-supplier
      description: Open Connectivity for Tours, Activities, and Attractions Get Supplier
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: octo.get-supplier
      outputParameters:
      - type: object
        mapping: $.
    - name: get-products
      description: Open Connectivity for Tours, Activities, and Attractions Get Products
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: octo.get-products
      outputParameters:
      - type: object
        mapping: $.
    - name: get-products-id
      description: Open Connectivity for Tours, Activities, and Attractions Get Product
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: octo.get-products-id
      with:
        id: tools.id
      inputParameters:
      - name: id
        type: string
        description: The product id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: post-availability-calendar
      description: Open Connectivity for Tours, Activities, and Attractions Availability Calendar
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.post-availability-calendar
      outputParameters:
      - type: object
        mapping: $.
    - name: post-availability
      description: Open Connectivity for Tours, Activities, and Attractions Availability Check
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.post-availability
      outputParameters:
      - type: object
        mapping: $.
    - name: post-bookings
      description: Open Connectivity for Tours, Activities, and Attractions Booking Reservation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.post-bookings
      outputParameters:
      - type: object
        mapping: $.
    - name: get-bookings
      description: Open Connectivity for Tours, Activities, and Attractions Get Bookings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: octo.get-bookings
      with:
        resellerReference: tools.resellerReference
        supplierReference: tools.supplierReference
        localDate: tools.localDate
        localDateStart: tools.localDateStart
        localDateEnd: tools.localDateEnd
        productId: tools.productId
        optionId: tools.optionId
      inputParameters:
      - name: resellerReference
        type: string
        description: The reseller reference on the booking
      - name: supplierReference
        type: string
        description: The reference provided by the supplier
      - name: localDate
        type: string
        description: All bookings made for a specific date
      - name: localDateStart
        type: string
        description: First date of a date range search
      - name: localDateEnd
        type: string
        description: Last date of a date range search
      - name: productId
        type: string
        description: The product id to filter by
      - name: optionId
        type: string
        description: The option id to filter by
      outputParameters:
      - type: object
        mapping: $.
    - name: post-bookings-uuid-confirm
      description: Open Connectivity for Tours, Activities, and Attractions Booking Confirmation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.post-bookings-uuid-confirm
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-bookings-uuid
      description: Open Connectivity for Tours, Activities, and Attractions Booking Cancellation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.delete-bookings-uuid
      outputParameters:
      - type: object
        mapping: $.
    - name: get-bookings-uuid
      description: Open Connectivity for Tours, Activities, and Attractions Get Booking
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: octo.get-bookings-uuid
      outputParameters:
      - type: object
        mapping: $.
    - name: patch-bookings-uuid
      description: Open Connectivity for Tours, Activities, and Attractions Booking Update
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.patch-bookings-uuid
      outputParameters:
      - type: object
        mapping: $.
    - name: post-bookings-uuid-extend
      description: Open Connectivity for Tours, Activities, and Attractions Extend Reservation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: octo.post-bookings-uuid-extend
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    OCTO_TOKEN: OCTO_TOKEN