istanbulportrait.com
OCTO Specification v2.0

Partner with Istanbul's Premier Photography Studio

Automate your bookings, access real-time availability, and get dynamic pricing with our fully OCTO-compliant B2B API. Built for OTAs, concierges, and travel agencies.

Certified by OCTO:Supplier Certification Badge
100% Standardized
Built on the global OCTO standard used by Viator and GetYourGuide.
Real-time Data
Live availability and dynamic time surcharges synced instantly.
Developer Friendly
RESTful endpoints with JSON responses and Bearer token auth.

Business Rules & Workflows

%
10% Agency Commission
Our standard B2B commission rate is exactly 10%. In all API responses, you will see two prices: retail (the price the customer pays) and net (the price you pay us). The net price is automatically calculated as 90% of the retail price in real-time.
Dynamic Time Surcharges
High-demand slots (like Sunrise shoots) automatically apply time-based surcharges. Our API natively handles this logic; simply call the /availability endpoint and the exact retail and net pricing for that specific hour will be returned.
Instant Sync (Source of Truth)
The API queries our live core database. If a customer books a slot on our main B2C website, that slot instantly becomes unavailable via the OCTO API, completely eliminating the risk of double-bookings or latency issues.
Booking Lifecycle
Per the OCTO standard, when you create a reservation, it is placed ON_HOLD. You must call the /confirm endpoint to finalize it. Once confirmed, customer details are synced securely into our CRM with your agency reference.
Merchant of Record & Payouts
You are the Merchant of Record. Our API does not process end-customer payments. You are responsible for collecting the retail price directly from your customers on your own website using your own payment gateway.

Once you successfully charge your customer, you call our API to secure the booking. To settle the net balance and confirm the reservation, you can instantly pay the net price for individual ON_HOLD bookings using a credit card via our secure B2B gateway: /checkout/b2b-pay?bookingId=[UUID]. Successful payment will automatically set the booking to CONFIRMED.

Authentication

All API requests must be authenticated using a Bearer token in the Authorization header. To get your unique API key, click the Request API Key button.

HeaderAuthorization: Bearer YOUR_API_KEY
curl -X GET "https://istanbulportrait.com/api/octo/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Core Endpoints

GET/api/octo/products

Returns a list of all active photography packages, including descriptions, inclusions, gallery images, and base pricing details.

Localization Support: This endpoint fully supports the BCP 47 standard. You can pass an Accept-Language header (e.g., es, ru, tr, ar) to receive localized package titles, descriptions, and features.

Example Response
[
  {
    "id": "package-uuid",
    "internalName": "Surprise Rooftop Proposal",
    "title": "Surprise Rooftop Marriage Proposal",
    "durationMinutesFrom": 120,
    "durationMinutesTo": 120,
    "deliveryMethods": ["TICKET"],
    "options": [
      {
        "id": "standard",
        "availabilityLocalStartTimes": [
          "06:00", "06:30", "07:00", "07:30"
        ],
        "pricingFrom": [{
          "retail": 30000,
          "net": 27000,
          "currency": "EUR"
        }]
      }
    ]
  }
]

Ready to start building?

Get your API key today and start offering Istanbul's best photography experiences directly to your customers.

Contact us on WhatsApp