NAV Navbar
Logo

Introduction

Welcome to the Coras API documentation, where you can learn how to access information on available theater shows and tours.

You can view code examples for each API endpoint in the pane to the right.

Example code will appear here.

Version

All api endpoint URLs include version number. This document describes Coras API version: v1

Authentication

Most API requests require one or more of these headers:

Coras-Distributor must be your Distributor ID, provided to you offline by a Coras account manager.

Booking-Session will be your booking session token received from Booking Session and must be included in all transactional API methods.

Quickstart Guide

Use the Coras API to supplement your own checkout process by offering tickets to a variety of attractions.

A typical use case might consist of the following steps:

  1. Create a booking session.
  2. Get a list of attractions for a given location and date.
  3. Once an attraction is selected, display a list of instances for that attraction.
  4. Reserve tickets.
  5. Optionally, get a summary of the booking.
  6. Get a Stripe payment token (by submitting the user’s card details to the Stripe API).
  7. Confirm your booking, OR:
  8. Cancel your booking

Now let’s look at each of the endpoints that facilitate the above use case.

Create a Booking Session

$ curl -X POST https://sandbox.coras.io/v1/booking-session \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223" \
   -d '{"distributor_session_id": "21db05c675d678b1b43c81dd8ea6def1",
        "user_id": "08387ee961ebf5e96ccf5ba9e5a0c1a8",
        "language": "en"}'
{
  "booking-session": "6f299e0ce1ef66e612ac45552cf9fabc"
}

To get a list of attractions a booking session ID is required. This guarantees prices for the duration of the session. Obtain a valid booking session token using the Booking Session endpoint, and setting the Booking-Session header in all subsequent ticket reservation requests. A booking session token will expire after 20 minutes of inactivity or a successful transaction confirmation. In the case of expiration, all tickets reserved during that session will automatically be released for other bookings.

Get Attractions List

$ curl -X GET "https://sandbox.coras.io/v1/attractions/?city=London&date_start=2018-07-24&date_end=2018-07-30&size=1" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fa" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
  "alternative_results": false,
  "results": [
    {
      "address": "Shaftesbury Avenue, London, W1D 7ES",
      "attraction_details_url":
        "/theater-events/54d07c194cc410e6325d9535d86c036d",
      "attraction_id": "54d07c194cc410e6325d9535d86c036d",
      "attraction_name": "Lyric Theatre",
      "attraction_type_id": 1,
      "category_id": 4,
      "city": "London",
      "description":
        "Now in its record breaking 9th sensational year, THRILLER LIVE is a spectacular concert created to celebrate the career of the world’s greatest entertainer. Already seen by over three million people in over 30 countries, THRILLER LIVE continues to moonwalk around the world, taking you on a visual, audio and electrifying journey through the magic of Michael’s 40 year musical history. Experience over two hours of non-stop hits from pop to rock, soul to disco in a show that pays homage to Jackson’s legendary live performances and innovative dance moves executed with flair, precision and passion in a show that you will never forget.",
      "images": {
        "image_w200_h200":
          "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress",
        "image_w288_h125":
          "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
        "image_w345_h237":
          "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress"
      },
      "label_blue": "Selling fast!",
      "label_red": "Most popular!",
      "location_name": "Lyric Theatre",
      "min_price": {
        "PLN": "9900",
        "GBP": "1650",
        "EUR": "3300",
        "NOK": "40209",
        "SEK": "40100",
        "DKK": "31250"
      },
      "priority": 2,
      "timezone": "Europe/London",
      "upcoming_instances": [
        "2018-07-24T18:30:00+00:00",
        "2018-07-25T18:30:00+00:00",
        "2018-07-26T18:30:00+00:00",
        "2018-07-27T18:30:00+00:00",
        "2018-07-28T15:00:00+00:00",
        "2018-07-28T19:00:00+00:00",
        "2018-07-29T14:30:00+00:00",
        "2018-07-29T18:30:00+00:00"
      ]
    },
    {
      "address": "",
      "attraction_details_url": "/tours/08e36beb3acadc1e69823b4d67aea83d",
      "attraction_id": "08e36beb3acadc1e69823b4d67aea83d",
      "attraction_name": "The Total London Experience with Free Lunch Pack",
      "attraction_type_id": 2,
      "category_id": 3,
      "city": "London",
      "description":
        "Panoramic tour of London - Entry to St. Paul’s Cathedral - See the Changing of the Guard at Buckingham Palace - Entry to Tower of London - Free Thames River boat ride - Spectacular experience on the London Eye - Complimentary  Lunch Pack",
      "images": {
        "image_w288_h125":
          "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
        "image_w345_h237":
          "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress",
        "image_w200_h200":
          "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress"
      },
      "label_blue": "",
      "label_red": "",
      "location_name": "",
      "min_price": {
        "PLN": "9900",
        "GBP": "1650",
        "EUR": "3300",
        "NOK": "40209",
        "SEK": "40100",
        "DKK": "31250"
      },
      "priority": 77,
      "timezone": "Europe/London",
      "upcoming_instances": [
        "2018-07-24T06:30:00+00:00",
        "2018-07-25T06:30:00+00:00",
        "2018-07-26T06:30:00+00:00",
        "2018-07-27T06:30:00+00:00",
        "2018-07-30T06:30:00+00:00",
        "2018-07-30T06:30:00+00:00"
      ]
    }
  ],
  "total": 2
}

Get a list of Attractions using the Attractions endpoint.

Currently, two types of attractions are available: Theater tickets and Tours.

Example request values

Argument Value
city London
date_end 2018-07-30
date_start 2018-07-24
size 1

See Attractions for an example response.

Get Attraction Details

$ curl -X GET "https://sandbox.coras.io/v1/theater-events/54d07c194cc410e6325d9535d86c036d?date_start=2018-07-24&date_end=2018-07-30" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
  "attraction": {
    "address": "Shaftesbury Avenue, London, W1D 7ES",
    "attraction_name": "THRILLER LIVE",
    "category_id": 4,
    "city": "London",
    "description":
      "Panoramic tour of London - Entry to St. Paul’s Cathedral - See the Changing of the Guard at Buckingham Palace - Entry to Tower of London - Free Thames River boat ride - Spectacular experience on the London Eye - Complimentary  Lunch Pack",
    "images": {
      "image_w96_h96": "",
      "image_w200_h200": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress",
      "image_w279_h213": "",
      "image_w288_h125": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
      "image_w304_h81": "",
      "image_w345_h237": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress"
    },
    "location_name": "Lyric Theatre",
    "seat_map": "",
    "seats_sales_enabled": false,
    "timezone": "Europe/London"
  },
  "instances": [
    {
      "coras_instance_id": "a7c9798a0fb33d5a5883a3dca5682741",
      "instance_id": "212705",
      "price_bands": [
        {
          "booking_fee": {
            "NOK": 2350,
            "GBP": 300,
            "DKK": 1844,
            "EUR": 343,
            "SEK": 2584,
            "PLN": 1480,
            "USD": 402
          },
          "full_price": {
            "NOK": 25849,
            "GBP": 2365,
            "DKK": 20280,
            "EUR": 3775,
            "SEK": 28429,
            "PLN": 16285,
            "USD": 4421
          },
          "price": {
            "NOK": 23499,
            "GBP": 3000,
            "DKK": 18436,
            "EUR": 3431,
            "SEK": 25845,
            "PLN": 14805,
            "USD": 4019
          },
          "price_band_id": "E29",
          "price_band_name": "Price Band E",
          "seatsio_category_id": 22829224,
          "section": "Balcony",
          "section_id": "BAL",
          "spaces_remaining": 18
        },
        {
          "booking_fee": {
            "NOK": 3133,
            "GBP": 400,
            "DKK": 2459,
            "EUR": 458,
            "SEK": 3446,
            "PLN": 1974,
            "USD": 536
          },
          "full_price": {
            "NOK": 39425,
            "EUR": 5033,
            "SEK": 43359,
            "PLN": 21713,
            "GBP": 4400,
            "DKK": 30936,
            "USD": 5895
          },
          "price": {
            "NOK": 35837,
            "EUR": 4575,
            "SEK": 308736,
            "PLN": 19739,
            "GBP": 4000,
            "DKK": 28121,
            "USD": 5359
          },

          "price_band_id": "D39",
          "price_band_name": "Price Band D",
          "seatsio_category_id": 43913235,
          "section": "Upper Circle",
          "section_id": "UC",
          "spaces_remaining": 8
        },
        {
          "booking_fee": {
            "NOK": 2687,
            "EUR": 343,
            "SEK": 2955,
            "PLN": 1480,
            "GBP": 300,
            "DKK": 2108,
            "USD": 402
          },
          "full_price": {
            "NOK": 29571,
            "EUR": 3775,
            "SEK": 23204,
            "PLN": 16285,
            "GBP": 3300,
            "DKK": 32522,
            "USD": 4421
          },
          "price": {
            "NOK": 26876,
            "EUR": 3431,
            "SEK": 21089,
            "PLN": 14805,
            "GBP": 3000,
            "DKK": 29558,
            "USD": 4019
          },
          "price_band_id": "E29",
          "price_band_name": "Price Band E",
          "seatsio_category_id": 22829224,
          "section": "Upper Circle",
          "section_id": "UC",
          "spaces_remaining": 33
        }
      ],
      "start_datetime": "2018-07-10T14:00:00+00:00",
      "updating": false
    }
  ],
  "total_instances": 1
}

Use an Attraction ID to fetch details for an attraction. This will include a list of attraction instances along with their price bands.

Example

Argument Value
attraction_id cbaf5eeef64219eadfa184e564c2af2c
date_end 2018-07-30
date_start 2018-07-24

For details on Theater tickets, see Theater Attractions.

For details on Tours, see Tour Attractions.

Reserve Tickets

$ curl -X POST https://sandbox.coras.io/v1/theater-events/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -d '{"attraction_id": "54d07c194cc410e6325d9535d86c036d",
        "instance_id": 212705,
        "language_code": "en",
        "tickets": [{
            "section_id": "BAL",
            "price_band_id": "E29",
            "number_of_tickets": 2,
            "booking_fee": 300,
            "seats": []
        }]}'
{
  "reservation_id": "7a7216e7509d4f1eba24135ef4757fb1",
  "seat_range": "E21 - E22",
  "tickets": [
    {
      "booking_fee": 300,
      "coras_seat_id": "5ee5667f409bda4c88fa83fc58f030711eddb793",
      "description": "",
      "full_price": 3300,
      "name": "Full Price",
      "price": 3000,
      "price_band_id": "E29",
      "restricted_view_description": "has a slightly restricted view",
      "row_id": 92,
      "row_name": "E",
      "seat_id": 1,
      "seat_name": "E21",
      "seat_number": "21",
      "seatsio_seat_id": "BALCONY-E-21",
      "section": "Balcony",
      "section_id": "BAL"
    }
  ]
}

To reserve one or more tickets to a particular attraction instance, use the reservations endpoint for theater tickets or the tour reservations endpoint for tours. A reservation is created with the requested number of tickets. Reservations are stored against the booking session.

Example (theater reservation)

Argument Value
attraction_id 54d07c194cc410e6325d9535d86c036d
currency GBP
instance_id 212705
language_code en
tickets List of tickets to be reserved

Get Reservation Summary

$ curl -X GET https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
  "reservations": [
    {
      "attraction_id": "54d07c194cc410e6325d9535d86c036d",
      "attraction_name": "THRILLER LIVE",
      "attraction_type_id": 1,
      "city": "London",
      "currency": "GBP",
      "end_datetime": "",
      "is_seatsio_reservation": false,
      "images": {
        "image_w96_h96": "",
        "image_w200_h200": "",
        "image_w279_h213": "",
        "image_w288_h125": "",
        "image_w304_h81": "",
        "image_w345_h237": ""
      },
      "location_name": "Lyric Theatre",
      "number_of_tickets": 2,
      "reservation_id": "7a7216e7509d4f1eba24135ef4757fb1",
      "start_datetime": "2018-07-24T18:30:00+00:00",
      "tickets": [
        {
          "booking_fee": 300,
          "coras_seat_id": "5ee5667f409bda4c88fa83fc58f030711eddb793",
          "description": "",
          "full_price": 3300,
          "name": "Full Price",
          "price": 3000,
          "price_band_id": "E29",
          "restricted_view_description": "has a slightly restricted view",
          "row_id": 92,
          "row_name": "E",
          "seat_id": 1,
          "seat_name": "E21",
          "seat_number": "21",
          "seatsio_seat_id": "BALCONY-E-21",
          "section": "Balcony",
          "section_id": "BAL"
        }
      ],
      "timezone": "Europe/London",
      "total_price": 3300
    }
  ],
  "total_price": 3300
}

Get a summary for a given booking session by using the summary endpoint and providing a valid booking session ID.

Get Stripe Token

Payment for the booking is facilitated using Stripe. You send the user’s card details (card number, CVC code, expiration month and expiration year) to Stripe, receiving a unique, single-use Stripe token in the response. You then send the Stripe token to Coras, who charges the customer’s card using this token.

You can find more information how to integrate your application with Stripe from the Stripe API documentation.

Confirm Reservation

$ curl -X PUT https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223" \
   -d '{"email": "jon.snow@example.com",
        "first_name": "Jon",
        "phone_number": "111-222-333",
        "reservations": [
            "7a7216e7509d4f1eba24135ef4757fb1"
        ],
        "second_name": "Snow",
        "token": "tok_19nn4HK10yRCtOElf6Gr4X8J"}'
{
  "transaction_id": "123406179e47a6a8f06f6c486abcde",
  "user_id": "6123c32027abcd2ac07c4c5a887abcd"
}

You can now confirm the reservation (or cancel it).

Use the Confirm Reservation endpoint to start payment and finish transaction, providing a valid booking session token and Coras-Distributor ID in the headers. Also provide the user’s first name, last name, the phone number, IDs of reservations in the basket and Stripe payment token in the request body.

A Transaction ID will be provided in the response. You can use the Transaction ID to check this transaction status of the booking (see Get User Transactions).

Example

Argument Value
email jon.snow@example.com
first_name Jon
last_name Snow
phone_number 111-222-333
products 123abc-cf3a-490a-9091-e72d2a814379
token tok_19nn4HK10yRCtOElf6Gr4X8J

Get User Transactions

$ curl -X GET "https://sandbox.coras.io/v1/transactions/ba35b0d5e2fc4928b960a1ce18cad23f" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
[
  {
    "created_at": "2017-05-12 07:20:49.380048",
    "reference_id": "Q0423ABC",
    "status": "PENDING",
    "transaction_id": "123406179e47a6a8f06f6c486abcde"
  }
]

Payment is handled asynchronously, so you may want to periodically check the status of a recent transaction using this API method. Every new transaction is created with status ADDED which changes to PENDING once it has begun processing. Successfully processed transactions then change to PURCHASED. If the transaction could not be completed its status is set to FAILED.

Cancel Reservation

Cancelling can only be done if a booking has not already been confirmed. After confirmation, the booking session is closed and cancelling is no longer possible.

You can cancel either a single reservation, or all reservations on a booking session.

Cancel a single reservation

$ curl -X DELETE https://sandbox.coras.io/v1/reservations/7a7216e7509d4f1eba24135ef4757fb1 \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

Cancel a single reservation by using the Remove Single Reservation endpoint and providing a reservation ID.

Example

Argument Value
reservation_id 123abc-cf3a-490a-9091-e72d2a814379

Cancel all reservations

$ curl -X DELETE https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

Cancel all reservations on a booking session by using the remove all reservations endpoint.

Booking Session

All actions (requesting attractions, attraction instances, confirming and applying tickets) are made in the context of a booking session. A booking session token can be obtained using the Booking Session endpoint. A booking session token will expire after 20 minutes of inactivity, but will be also revoked when user confirms a transaction (Confirm Reservation). Calling an endpoint which requires a booking session token will refresh the expiration timeout of the provided token. After a booking session token has expired, any reservation endpoint will return a 401 Unauthorized response.

Create booking session

Creates a new booking session, and returns a booking session token.

When creating a new booking session, you can assign additional custom information from your own domain into the User ID and Session ID fields to better facilitate reporting use cases at a later date.

$ curl -X POST https://sandbox.coras.io/v1/booking-session \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223" \
   -d '{"distributor_session_id": "21db05c675d678b1b43c81dd8ea6def1",
        "user_id": "08387ee961ebf5e96ccf5ba9e5a0c1a8",
        "language": "en"}'
{
  "booking-session": "6f299e0ce1ef66e612ac45552cf9fabc"
}

Request

POST https://sandbox.coras.io/v1/booking-session

Headers

Name Type Required Description
Coras-Distributor String Yes Distributor ID
Content-Type String Yes Accepts only application/json

Arguments

Name Type Required Description
distributor_session_id String No Session ID generated by distributor
language String No Selected language
user_id String No User ID

Response

Name Type Description
booking-session String Booking session token

HTTP 400 status code when user does not exist

Update booking session data

Update data assigned to an existing booking session.

$ curl -X PUT https://sandbox.coras.io/v1/booking-session \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223" \
   -d '{"user_id": "08387ee961ebf5e96ccf5ba9e5a0c1a8",
        "language": "en"}'

Request

PUT https://sandbox.coras.io/v1/booking-session

Headers

Name Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
language String No Selected language
user_id String No User ID

Output

HTTP 204 status code when reservation was remove

HTTP 400 status code when another user is already assigned to a booking session

Attractions

There are two types of attractions.

To get detailed information about attractions, use the appropriate endpoint for that attraction type.

Booking various types of attractions requires sending a different set of parameters. For this reason, there are separate endpoints for booking individual types of attractions.

Attractions List

Returns a list of attractions for given location (city) and date range.

$ curl -X GET "https://sandbox.coras.io/v1/attractions/?city=London&date_start=2018-07-24&date_end=2018-07-30&size=1" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fa" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
   "alternative_results": false,
   "results": [
      {
        "address": "Shaftesbury Avenue, London, W1D 7ES",
        "attraction_details_url": "/theater-events/54d07c194cc410e6325d9535d86c036d",
        "attraction_id": "54d07c194cc410e6325d9535d86c036d",
        "attraction_name": "Lyric Theatre",
        "attraction_type_id": 1,
        "category_id": 4,
        "city": "London",
        "description": "Now in its record breaking 9th sensational year, THRILLER LIVE is a spectacular concert created to celebrate the career of the world’s greatest entertainer. Already seen by over three million people in over 30 countries, THRILLER LIVE continues to moonwalk around the world, taking you on a visual, audio and electrifying journey through the magic of Michael’s 40 year musical history. Experience over two hours of non-stop hits from pop to rock, soul to disco in a show that pays homage to Jackson’s legendary live performances and innovative dance moves executed with flair, precision and passion in a show that you will never forget.",
        "geolocation_points": [],
        "images": {
            "image_w200_h200": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w288_h125": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w345_h237": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress"
        },
        "label_blue": "Selling fast!",
        "label_red": "Most popular!",
        "location_name": "Lyric Theatre",
        "min_price": {
            "PLN": "9900",
            "GBP": "1650",
            "EUR": "3300",
            "NOK": "40209",
            "SEK": "40100",
            "DKK": "31250"
        },
        "priority": 2,
        "timezone": "Europe/London",
        "upcoming_instances": [
            "2018-07-24T18:30:00+00:00",
            "2018-07-25T18:30:00+00:00",
            "2018-07-26T18:30:00+00:00",
            "2018-07-27T18:30:00+00:00",
            "2018-07-28T15:00:00+00:00",
            "2018-07-28T19:00:00+00:00",
            "2018-07-29T14:30:00+00:00",
            "2018-07-29T18:30:00+00:00"
        ],
        "tags": []
      },
      {
        "address": "",
        "attraction_details_url": "/tours/08e36beb3acadc1e69823b4d67aea83d",
        "attraction_id": "08e36beb3acadc1e69823b4d67aea83d",
        "attraction_name": "The Total London Experience with Free Lunch Pack",
        "attraction_type_id": 2,
        "category_id": 3,
        "city": "London",
        "description": "Panoramic tour of London - Entry to St. Paul’s Cathedral - See the Changing of the Guard at Buckingham Palace - Entry to Tower of London - Free Thames River boat ride - Spectacular experience on the London Eye - Complimentary  Lunch Pack",
        "geolocation_points": [],
        "images": {
            "image_w288_h125": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w345_h237": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w200_h200": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress"
        },
        "label_blue": "",
        "label_red": "",
        "location_name": "",
        "min_price": {
            "PLN": "9900",
            "GBP": "1650",
            "EUR": "3300",
            "NOK": "40209",
            "SEK": "40100",
            "DKK": "31250"
        },
        "priority": 77,
        "timezone": "Europe/London",
        "upcoming_instances": [
            "2018-07-24T06:30:00+00:00",
            "2018-07-25T06:30:00+00:00",
            "2018-07-26T06:30:00+00:00",
            "2018-07-27T06:30:00+00:00",
            "2018-07-30T06:30:00+00:00",
            "2018-07-30T06:30:00+00:00"
        ],
        "tags": [
            "best seller",
            "promotion"
        ]
      }
    ],
   "total": 2
}

Request

GET https://sandbox.coras.io/v1/attractions/?city={city}&date_start={date_start}&date_end={date_end}&size={size}&page={page}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Querystring parameters

Name Type Required Description
alternative_results Boolean No Indicates if alternative results should be returned. See more about alternative results
attraction_type_id Integer No Type of the attractions to return. See more about attraction types
category_id Integer No Attraction category ID. Available categories can be obtained from the categories endpoint
city String Yes Name of city. List of available cities
date_end String No Date range to (YYYY-MM-DD) (default: date_start + 7 days)
date_start String Yes Date range from (YYYY-MM-DD)
language_code String Yes Selected language
page Integer No Page number (default: 0)
search_term String No Query string to be used for search in Attraction’s name and description
size Integer No Number of attractions to return (default: 4, max: 100) per single page
currency String No Supported currency
latitude Float No A geographic coordinate that specifies search point
longitude Float No A geographic coordinate that specifies search point
radius Float No Search radius, i.e. the distance from the given point within which to search for attractions; (default 1)
radius_unit String No Unit for radius (mm, cm, m and km); (default km)
tags String No Comma separated list of tags used to filetr search results (eg. “best seller,promotion”)

Response

Name Type Description
alternative_results Boolean Indicates the presence of alternative results in the response
results List of Attractions List of available attractions
total Integer Number of attractions found

Attraction

Name Type Description
address String Location address
attraction_details_url String Relative URL to the details of given attraction
attraction_id String Attraction ID. Maximum length is 50 characters
attraction_name String Attraction name. Maximum length is 250 characters
attraction_type_id Integer Type of the attraction. See more about attraction types
category_id Integer Attraction category ID. Available categories can be obtained from the categories endpoint
city String Location city
description String Short descriptions of an attraction
geolocation_points List List of coordinates of the most important points on the tour route
images List of Images Attraction images
label_blue String Attraction blue label
label_red String Attraction red label
location_name String Location name. Maximum length is 64 characters
min_price Price Minimum available price in multiple currencies.
priority Integer Attraction priority. By default the return list of attractions is sorted by this value
timezone String Attraction timezone
upcoming_instances List List of up to 100 dates in which instance of the attraction take place
tags List List of tags assigned to the attraction

Geolocation Point

Name Type Description
latitude Float A geographic coordinate that specifies the north–south position of a point on the Earth’s surface.
longitude Float A geographic coordinate that specifies the east-west position of a point on the Earth’s surface.
name String Short description of point

Some tourist attractions might have several geo-points, such as start and end.

Price

{
    "PLN": "9900",
    "GBP": "1650",
    "EUR": "3300",
}
Name Type Description
EUR Integer Price in Euro
GBP Integer Price in British Pound
PLN Integer Price in Polish Zloty
etc. See all supported currencies

Image

Name Type Description
image_w200_h200 String URL to the image with width of 200px and height of 200px
image_w288_h125 String URL to the image with width of 288px and height of 125px
image_w345_h237 String URL to the image with width of 345px and height of 237px

Alternative results

The Attractions API supports returning alternative results in the case that a search request with the desired criteria would return no results. If the alternative_results parameter is provided along with other parameters then in case of no results found the fallowing: - If no results found for given parameters then search by the same parameters except search_term and category_id if they have been provided in the first place. - If above would return no results then expand the date range by increasing end_date by 4 weeks

Attraction types

Currently two types of attraction are supported: Theater events and tours. The list of attraction types can be retrieved from the Attraction types endpoint.

Get Attraction types

$ curl -X GET "https://sandbox.coras.io/attraction-types" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
[
    {
        "id": 1,
        "name": "THEATER"
    },
    {
        "id": 2,
        "name": "TOUR"
    }
]

Returns a list of the attraction types currently available.

Request

GET https://sandbox.coras.io/attraction-types

Headers

Header Type Required Description
Coras-Distributor String Yes Distributor ID
Content-Type String Yes Accepts only application/json

Response

Name Type Description
id Integer Attraction type ID
name String Attraction name

Get Categories

$ curl -X GET "https://sandbox.coras.io/categories" \
    -H "Content-Type: application/json" \
    -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
[
    {
        "id": 1,
        "name": "Theatre"
    },
    {
        "id": 2,
        "name": "Music"
    },
    {
        "id": 3,
        "name": "Tourist Attractions"
    },
    {
        "id": 4,
        "name": "Other Events"
    },
    {
        "id": 5,
        "name": "Sport Events"
    }
]

Returns a list of categories currently available. Each attraction belongs to one category only.

Request

Header Type Required Description
Coras-Distributor String Yes Distributor ID
Content-Type String Yes Accepts only application/json

Response

Name Type Description
id Integer Category ID
name String Category name

Theater Attractions

Get Theater Attraction

$ curl -X GET "https://sandbox.coras.io/v1/theater-events/54d07c194cc410e6325d9535d86c036d?date_start=2018-07-24&date_end=2018-07-30" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
    "attraction": {
        "address": "Shaftesbury Avenue, London, W1D 7ES",
        "attraction_name": "THRILLER LIVE",
        "category_id": 4,
        "city": "London",
        "description": "Panoramic tour of London - Entry to St. Paul’s Cathedral - See the Changing of the Guard at Buckingham Palace - Entry to Tower of London - Free Thames River boat ride - Spectacular experience on the London Eye - Complimentary  Lunch Pack",
        "images": {
            "image_w96_h96": "",
            "image_w200_h200": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress"
            "image_w279_h213": "",
            "image_w288_h125": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w304_h81": "",
            "image_w345_h237": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress",
        },
        "latitude": null,
        "location_name": "Lyric Theatre",
        "longitude": null,
        "multiple_purchases": false,
        "seat_map": "",
        "seats_sales_enabled": false,
        "timezone": "Europe/London"
    },
    "instances": [
        {
            "coras_instance_id": "a7c9798a0fb33d5a5883a3dca5682741",
            "instance_id": "212705",
            "price_bands": [
                {
                    "min_booking_fee": {
                        "NOK": 2350,
                        "GBP": 300,
                        "DKK": 1844,
                        "EUR": 343,
                        "SEK": 2584,
                        "PLN": 1480,
                        "USD": 402
                    },
                    "max_booking_fee": {
                        "NOK": 2350,
                        "GBP": 300,
                        "DKK": 1844,
                        "EUR": 343,
                        "SEK": 2584,
                        "PLN": 1480,
                        "USD": 402
                    },
                    "min_full_price": {
                        "NOK": 25849,
                        "GBP": 2365,
                        "DKK": 20280,
                        "EUR": 3775,
                        "SEK": 28429,
                        "PLN": 16285,
                        "USD": 4421
                    },
                    "max_full_price": {
                        "NOK": 25849,
                        "GBP": 2365,
                        "DKK": 20280,
                        "EUR": 3775,
                        "SEK": 28429,
                        "PLN": 16285,
                        "USD": 4421
                    },
                    "price": {
                        "NOK": 23499,
                        "GBP": 3000,
                        "DKK": 18436,
                        "EUR": 3431,
                        "SEK": 25845,
                        "PLN": 14805,
                        "USD": 4019
                    },
                    "price_band_id": "E29",
                    "price_band_name": "Price Band E",
                    "seatsio_category_id": 22829224,
                    "section": "Balcony",
                    "section_id": "BAL",
                    "spaces_remaining": 18
                },
                {
                    "min_booking_fee": {
                        "NOK": 3133,
                        "GBP": 400,
                        "DKK": 2459,
                        "EUR": 458,
                        "SEK": 3446,
                        "PLN": 1974,
                        "USD": 536
                    },
                    "max_booking_fee": {
                        "NOK": 3133,
                        "GBP": 400,
                        "DKK": 2459,
                        "EUR": 458,
                        "SEK": 3446,
                        "PLN": 1974,
                        "USD": 536
                    },
                    "min_full_price": {
                        "NOK": 39425,
                        "EUR": 5033,
                        "SEK": 43359,
                        "PLN": 21713,
                        "GBP": 4400,
                        "DKK": 30936,
                        "USD": 5895
                    },
                    "max_full_price": {
                        "NOK": 39425,
                        "EUR": 5033,
                        "SEK": 43359,
                        "PLN": 21713,
                        "GBP": 4400,
                        "DKK": 30936,
                        "USD": 5895
                    },
                    "price": {
                        "NOK": 35837,
                        "EUR": 4575,
                        "SEK": 308736,
                        "PLN": 19739,
                        "GBP": 4000,
                        "DKK": 28121,
                        "USD": 5359
                    },
                    "price_band_id": "D39",
                    "price_band_name": "Price Band D",
                    "seatsio_category_id": 43913235,
                    "section": "Upper Circle",
                    "section_id": "UC",
                    "spaces_remaining": 8
                },
                {
                    "min_booking_fee": {
                        "NOK": 2687,
                        "EUR": 343,
                        "SEK": 2955,
                        "PLN": 1480,
                        "GBP": 300,
                        "DKK": 2108,
                        "USD": 402
                    },
                    "max_booking_fee": {
                        "NOK": 2687,
                        "EUR": 343,
                        "SEK": 2955,
                        "PLN": 1480,
                        "GBP": 300,
                        "DKK": 2108,
                        "USD": 402
                    },
                    "min_full_price": {
                        "NOK": 29571,
                        "EUR": 3775,
                        "SEK": 23204,
                        "PLN": 16285,
                        "GBP": 3300,
                        "DKK": 32522,
                        "USD": 4421
                    },
                    "max_full_price": {
                        "NOK": 29571,
                        "EUR": 3775,
                        "SEK": 23204,
                        "PLN": 16285,
                        "GBP": 3300,
                        "DKK": 32522,
                        "USD": 4421
                    },
                    "price": {
                        "NOK": 26876,
                        "EUR": 3431,
                        "SEK": 21089,
                        "PLN": 14805,
                        "GBP": 3000,
                        "DKK": 29558,
                        "USD": 4019
                    },
                    "price_band_id": "E29",
                    "price_band_name": "Price Band E",
                    "seatsio_category_id": 22829224,
                    "section": "Upper Circle",
                    "section_id": "UC",
                    "spaces_remaining": 33
                }
            ],
            "start_datetime": "2018-07-10T14:00:00+00:00",
            "provisional_date": false,
            "updating": false
        }
    ],
    "total_instances": 1
}

Returns a list of theater event instances for a given (theater) attraction ID and date range.

Request

GET https://sandbox.coras.io/v1/theater-events/{attraction_id}?language_code={language_code}&date_start={date_start}&date_end={date_end}&size={size}&page={page}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
attraction_id String Yes Attraction ID. Maximum length is 50 characters

Querystring parameters

Name Type Required Description
alternative_results Boolean No Indicates if alternative results should be returned
attraction_type_id Integer No Type of the attractions to return. See more about attraction types
category_id Integer No Attraction category ID. Available categories can be obtained from the categories endpoint
city String No Name of city. List of available cities
date_end String No Date range to (YYYY-MM-DD) (default: date_start + 7 days)
date_start String Yes Date range from (YYYY-MM-DD)
language_code String Yes Selected language
page Integer No Page number (default: 0)
search_term String No Query string to be used for search in Attraction’s name and description
size Integer No Number of attractions to return (default: 10, max: 100) per single page
currency String No Supported currency

Response

Name Type Description
attraction Theater Attraction Attraction details
instances List of Attraction Instances List of theater instances
total_instances Integer Total number of instances found

Theater Attraction Details

Name Type Description
address String Venue street address
attraction_name String Attraction title. Maximum length is 250 characters
category_id Integer Attraction category ID. Available categories can be obtained from the categories endpoint
city String Venue city
description String Attraction description in requested language
images List of Image Attraction images
latitude Float A geographic coordinate that specifies the north–south position of a point on the Earth’s surface.
location_name String Location name. Maximum length is 64 characters
longitude Float A geographic coordinate that specifies the east-west position of a point on the Earth’s surface.
multiple_purchases Boolean If this flag is set to false, the customer can make orders for many tickets but only from one section and at the same price band.
seat_map String URL address to seat map in requested language
seats_sales_enabled Boolean Flag indicating whether the sale is carried out with the use of a seating plan
timezone String Venue timezone

Theater Attraction Images

Name Type Description
image_w96_h96 String URL to the image with width of 96px and height of 96px
image_w200_h200 String URL to the image with width of 200px and height of 200px
image_w279_h213 String URL to the image with width of 279px and height of 213px
image_w288_h125 String URL to the image with width of 288px and height of 125px
image_w304_h81 String URL to the image with width of 304px and height of 81px
image_w345_h237 String URL to the image with width of 345px and height of 237px

Get Theater Attraction Instance

$ curl -X GET "https://sandbox.coras.io/v1/theater-events/54d07c194cc410e6325d9535d86c036d/instances/a7c9798a0fb33d5a5883a3dca5682741" \
   -H "Content-Type: application/json" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
    "coras_instance_id": "a7c9798a0fb33d5a5883a3dca5682741",
    "instance_id": "212705",
    "price_bands": [
        {
            "min_booking_fee": {
                "NOK": 2350,
                "GBP": 300,
                "DKK": 1844,
                "EUR": 343,
                "SEK": 2584,
                "PLN": 1480,
                "USD": 402
            },
            "max_booking_fee": {
                "NOK": 2350,
                "GBP": 300,
                "DKK": 1844,
                "EUR": 343,
                "SEK": 2584,
                "PLN": 1480,
                "USD": 402
            },
            "min_full_price": {
                "NOK": 25849,
                "GBP": 2365,
                "DKK": 20280,
                "EUR": 3775,
                "SEK": 28429,
                "PLN": 16285,
                "USD": 4421
            },
            "max_full_price": {
                "NOK": 25849,
                "GBP": 2365,
                "DKK": 20280,
                "EUR": 3775,
                "SEK": 28429,
                "PLN": 16285,
                "USD": 4421
            },
            "price": {
                "NOK": 23499,
                "GBP": 3000,
                "DKK": 18436,
                "EUR": 3431,
                "SEK": 25845,
                "PLN": 14805,
                "USD": 4019
            },
            "price_band_id": "E29",
            "price_band_name": "Price Band E",
            "seatsio_category_id": 22829224,
            "section": "Balcony",
            "section_id": "BAL",
            "spaces_remaining": 18
        },
        {
            "min_booking_fee": {
                "NOK": 3133,
                "GBP": 400,
                "DKK": 2459,
                "EUR": 458,
                "SEK": 3446,
                "PLN": 1974,
                "USD": 536
            },
            "max_booking_fee": {
                "NOK": 3133,
                "GBP": 400,
                "DKK": 2459,
                "EUR": 458,
                "SEK": 3446,
                "PLN": 1974,
                "USD": 536
            },
            "min_full_price": {
                "NOK": 39425,
                "EUR": 5033,
                "SEK": 43359,
                "PLN": 21713,
                "GBP": 4400,
                "DKK": 30936,
                "USD": 5895
            },
            "max_full_price": {
                "NOK": 39425,
                "EUR": 5033,
                "SEK": 43359,
                "PLN": 21713,
                "GBP": 4400,
                "DKK": 30936,
                "USD": 5895
            },
            "price": {
                "NOK": 35837,
                "EUR": 4575,
                "SEK": 308736,
                "PLN": 19739,
                "GBP": 4000,
                "DKK": 28121,
                "USD": 5359
            },
            "price_band_id": "D39",
            "price_band_name": "Price Band D",
            "seatsio_category_id": 43913235,
            "section": "Upper Circle",
            "section_id": "UC",
            "spaces_remaining": 8
        },
        {
            "min_booking_fee": {
                "NOK": 2687,
                "EUR": 343,
                "SEK": 2955,
                "PLN": 1480,
                "GBP": 300,
                "DKK": 2108,
                "USD": 402
            },
            "max_booking_fee": {
                "NOK": 2687,
                "EUR": 343,
                "SEK": 2955,
                "PLN": 1480,
                "GBP": 300,
                "DKK": 2108,
                "USD": 402
            },
            "min_full_price": {
                "NOK": 29571,
                "EUR": 3775,
                "SEK": 23204,
                "PLN": 16285,
                "GBP": 3300,
                "DKK": 32522,
                "USD": 4421
            },
            "max_full_price": {
                "NOK": 29571,
                "EUR": 3775,
                "SEK": 23204,
                "PLN": 16285,
                "GBP": 3300,
                "DKK": 32522,
                "USD": 4421
            },
            "price": {
                "NOK": 26876,
                "EUR": 3431,
                "SEK": 21089,
                "PLN": 14805,
                "GBP": 3000,
                "DKK": 29558,
                "USD": 4019
            },
            "price_band_id": "E29",
            "price_band_name": "Price Band E",
            "seatsio_category_id": 22829224,
            "section": "Upper Circle",
            "section_id": "UC",
            "spaces_remaining": 33
        }
    ],
    "start_datetime": "2018-07-10T14:00:00+00:00",
    "provisional_date": false,
    "updating": false
}

For selected attraction ID and attraction instance ID, this endpoints returns information for that attraction instance.

Request

GET https://sandbox.coras.io/v1/theater-events/{attraction_id}/instances/{coras_instance_id}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
attraction_id String Yes Attraction ID. Maximum length is 50 characters
coras_instance_id String Yes Instance ID. Maximum length is 50 characters

Querystring parameters

Name Type Required Description
currency String No Supported currency

Response

Name Type Description
coras_instance_id String Coras instance ID
instance_id String Theater instance ID
price_bands List of Price Bands List of available price bands
start_datetime String Datetime when performance starts
updating Boolean Information if specific performance is updated
provisional_date Boolean Indicates if returned start_datetime is provisional and may change in the future

Price Bands

Name Type Description
min_booking_fee Integer Minimum Fees per ticket for current distributor
max_booking_fee Integer Maximum Fees per ticket for current distributor
min_full_price Integer Ticket price including face value and minimum fees for current distributor
max_full_price Integer Ticket price including face value and maximum fees for current distributor
price Integer Face value per ticket
price_band_id String Price band ID
price_band_name String Price band name
seatsio_category_id Integer Seats.io category ID
section String Name of section
section_id Sting Section ID
spaces_remaining Integer Number of seats left

Seats

Get seats

Returns a list of available seats for given event and instance.

$ curl -X GET "https://sandbox.coras.io/v1/theater-events/54d07c194cc410e6325d9535d86c036d/performances/a7c9798a0fb33d5a5883a3dca5682741" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
[
    {
        "seats": {
            "STALLS-X-3": {
                "coras_seat_id": "2243cb03610918d5af24e155b54097f2913bf074"
            },
            "DRESS CIRCLE-K-19": {
                "coras_seat_id": "9aa9a0fc71378ee28f968609119a48afa51db8d2"
            },
            "GRAND CIRCLE-C-1": {
                "coras_seat_id": "8ccc5921bdbea1132722b8efeed69f2bbf25f5bd"
            },
            "STALLS-AX-7": {
                "coras_seat_id": "f5703cf7491fecc0965ef1103019252bacd1ddb3"
            },
            "DRESS CIRCLE-H-25": {
                "coras_seat_id": "14aeb1bd26cd79e42ad0b4a19c590cc4d3804b06"
            },
            "STALLS-X-12": {
                "coras_seat_id": "a0b51d0e0c82480e0c7cd27b6200d316ae52f255"
            },
            "GRAND CIRCLE-AA-1": {
                "restricted_view": "has a slightly restricted view",
                "coras_seat_id": "13c5fea5968afdc5072ad9c2620bf12c2e056a3c"
            },
            "GRAND CIRCLE-C-10": {
                "coras_seat_id": "263e3b8e82d63f525797f884164febdf32f51173"
            },
            "STALLS-AX-3": {
                "coras_seat_id": "922a32e97017f584f4e597464fd9e4974111420d"
            },
            "GRAND CIRCLE-C-23": {
                "coras_seat_id": "f97e294fdbfd89c9e3a99b8b191a2a9d3fa12d66"
            },
            "GRAND CIRCLE-B-24": {
                "coras_seat_id": "a7b1faab38403f6f2eea1c1154518e4cb840a260"
            },
            "STALLS-U-7": {
                "coras_seat_id": "3d1bbb7d12223000afffa26d11ace0d7d924593f"
            },
            "DRESS CIRCLE-M-27": {
                "coras_seat_id": "6cf40567f2fa61cc9616cacb0793e19356c40c19"
            },
            "STALLS-AY-11": {
                "coras_seat_id": "0b92f3ed32edf5ae35f83efb832910a29f969ca0"
            },
            "GRAND CIRCLE-C-5": {
                "coras_seat_id": "064ada7cef62bdb7e1ba2c565aeb219047a36807"
            },
            "STALLS-U-26": {
                "coras_seat_id": "f2f3cc7f19fbabcdf3ccb7f56007e5e8f4a16d35"
            },
            "GRAND CIRCLE-A-20": {
                "coras_seat_id": "b5228d9d9518d4d5b603612cb2edc0d103dbffdd"
            },
            "DRESS CIRCLE-H-24": {
                "coras_seat_id": "e61534928109745311ce182391124a1bbed4f39a"
            },
            "DRESS CIRCLE-J-16": {
                "coras_seat_id": "68989a3daa264d0c1607e8ea56726ae23ef81a16"
            },
        },
        "category_id": 64226809
    },
    {
        "seats": {
            "STALLS-K-14": {
                "coras_seat_id": "01909e03c0b6cc3ec7bdcfa6cdca74f6ef23ae65"
            },
            "STALLS-C-5": {
                "coras_seat_id": "ff5457fa7594bd860d712a09e229a8de432fac79"
            },
            "STALLS-O-6": {
                "coras_seat_id": "60e9ce965d54ca1537aca5e2979ac8d4748461a6"
            },
            "STALLS-H-19": {
                "coras_seat_id": "ee0d86d5f50fd8455e4973a262bcd81cf4d70fdc"
            },
            "STALLS-D-2": {
                "coras_seat_id": "9d9f62351957276a25bf728bdecaedcd3239c255"
            },
            "STALLS-N-19": {
                "coras_seat_id": "9bb565e044afef7daaf2ef50a05fc78d9cfeba03"
            },
            "STALLS-C-3": {
                "coras_seat_id": "c9a069d22f4c112e757cd3cdf48b8c2e05871f99"
            },
            "DRESS CIRCLE-D-1": {
                "coras_seat_id": "b6b861d89a68bd7298171f4c3c52cc87a1a13ade"
            },
            "DRESS CIRCLE-B-1": {
                "coras_seat_id": "035cf0b8ba994a28ea7ce5c1a199b89669f49499"
            },
            "STALLS-Q-21": {
                "coras_seat_id": "81eb61dcb1762b8560e602d714cfd0e69455bcbe"
            },
            "STALLS-F-1": {
                "coras_seat_id": "667fd48b741624956ae736d8181206d2d139d2fa"
            },
            "DRESS CIRCLE-E-7": {
                "coras_seat_id": "6579ce0aebce1f18f2495a2df249286547add507"
            },
            "STALLS-O-22": {
                "coras_seat_id": "6f1943f44ad5436fc08879e7b05dbacd1b97813b"
            },
            "STALLS-H-21": {
                "coras_seat_id": "b69975c489370b3e853a6699a32dafaf74630c0c"
            },
            "DRESS CIRCLE-D-12": {
                "coras_seat_id": "23a31e828349267b03da834ded3fb62294f15adf"
            },
            "STALLS-F-18": {
                "coras_seat_id": "cff6910f69d7eecb58da94bab467e0db0866bbfc"
            },
            "DRESS CIRCLE-F-16": {
                "coras_seat_id": "a142f5aaefe4bd37b1434bd6091aae63e319b6f8"
            },
            "STALLS-N-26": {
                "coras_seat_id": "8c542a175be77763a76cb02f01c522046f98429b"
            },
            "DRESS CIRCLE-E-4": {
                "coras_seat_id": "3da36bfaf1d390b9ae6288c4fe4700db4ece13fd"
            },
            "DRESS CIRCLE-B-3": {
                "coras_seat_id": "82601795edcb0568343bd3b692a8b5708110b737"
            },
            "STALLS-M-24": {
                "coras_seat_id": "41f73274951d5213f725a26b666b7c4e83270a36"
            },
            "STALLS-M-25": {
                "coras_seat_id": "48ea60c484f442430872f7769c2e5d576fde771d"
            },
            "STALLS-L-5": {
                "coras_seat_id": "c4eb10bdbc5ca9f837bf72d7af714441ff842825"
            },
            "BOX E-BoxE-3": {
                "coras_seat_id": "65562d8782a84062151eb66503d5f4f2539c63c2"
            },
            "DRESS CIRCLE-A-21": {
                "coras_seat_id": "c168bc420821ff447fcbe782f49a11b419f16e4d"
            },
            "STALLS-D-13": {
                "coras_seat_id": "963809fd043506b573dac0f237910dc6a14b9738"
            },
            "STALLS-T-22": {
                "coras_seat_id": "8addead4eecde9da9185c5d8f036c303b2b67f0e"
            },
            "STALLS-P-25": {
                "coras_seat_id": "56fb2f1e501ef720ff705d3ae394109469237892"
            },
            "DRESS CIRCLE-D-4": {
                "coras_seat_id": "c539a1f61274a6b5453b5cf178b9fa3e0941aa68"
            },
            "STALLS-M-22": {
                "coras_seat_id": "563ca8abd13b26c86b5d03fc8a4c7476ac9d4958"
            },
            "DRESS CIRCLE-G-26": {
                "coras_seat_id": "ebb0b6f76f45714ca557bfa97c3120cc6f8eb853"
            },
            "DRESS CIRCLE-D-22": {
                "coras_seat_id": "b120eab510cee15861fb4b05428f791c0c2eba23"
            },
            "DRESS CIRCLE-F-26": {
                "coras_seat_id": "622e5b124d5e373b59a1f5afb8a301c493af59d6"
            },
            "BOX D-BoxD-3": {
                "coras_seat_id": "50e402ac9c4209ec0cca0352717b93b1cc2131e6"
            },
            "STALLS-J-2": {
                "coras_seat_id": "ed341977c700ceee67bafe602a4b8762a0b82b97"
            }
        },
        "category_id": 57532915
    }
]

HTTP Request

GET https://sandbox.coras.io/v1/theater-events/{attraction_id}/performances/{instance_id}

Headers

Name Type Required Description
Coras-Distributor String Yes Distributor ID
Content-Type String Yes Accepts only application/json

Arguments

Name Type Required Description
language_code String No Selected language

Response

Available price categories

Name Type Description
seats List List of available seats
category_id Integer Price category, matches seatsio_category_id from Theater Attraction or Theater Instance Details

Seats output

Name Type Description
coras_seat_id string ID used to identify the seat. Can be included in the request to make a reservation
restricted_view string View description

HTTP 400 status code when an attraction with the given ID does not exist, sales through seats.io is disabled for this attraction or a seating chart is not assigned to this attraction.

Tour Attractions

Get Tour Attraction

$ curl -X GET "https://sandbox.coras.io/v1/tours/08e36beb3acadc1e69823b4d67aea83d?date_start=2018-07-24&date_end=2018-07-30" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

{
    "attraction": {
        "attraction_name": "The Total London Experience with Free Lunch Pack",
        "category_id": 3,
        "city": "London",
        "duration": 1,
        "duration_description": "Approx. 10 hours",
        "essential_information": "Daily\n\nCheck-in: 7:30am \nDeparture: 8:00am\n\nReturn (approx.): 6:00pm\n\nDeparture point: 4 Fountain Square, 123-151 Buckingham Palace Road, London SW1W 9SH\nReturn point: London Eye Pier\n\n\nDEPARTURE POINT:\nGolden Tours Visitors Centre, 4 Fountain Square, 123-151 Buckingham Palace Road, London SW1W 9SH\n\nTel:  44 (0)20 7233 7030",
        "excluded": "* Gratuities\n* Hotel pick-up & return\n* Food and beverages unless stated differently",
        "extras_upgrades": "",
        "geolocation_points": [],
        "highlights": "* Panoramic tour of London\n* Entry to St. Paul’s Cathedral\n* See the Changing of the Guard at Buckingham Palace\n* Entry to Tower of London\n* Free Thames River boat ride\n* Spectacular experience on the London Eye\n* Complimentary  Lunch Pack",
        "images": {
            "image_w200_h200": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w1600_h300": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=1600&h=300&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w288_h204": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=204&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w288_h125": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
            "image_w446_h300": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=446&h=300&fit=crop&crop=edges&auto=format,enhance,compress",
            "images_w750_h340": [
                "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                "https://coras-local.imgix.net/images/675dd6eb-95f0-5fca-aa37-8a245069e089.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                "https://coras-local.imgix.net/images/131a7d8e-d2bf-511e-9b21-0fd56a048e6a.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                "https://coras-local.imgix.net/images/f6822249-1973-5095-bf04-7d7489aca3a5.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                "https://coras-local.imgix.net/images/dd83f806-9e16-5ed1-b054-58250dc81508.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress"
            ],
            "image_w345_h237": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress"
        },
        "included": "* Admissions to Tower of London and St. Paul's Cathedral\n* Panoramic Tour of London\n* River Boat Ride\n* Coca-Cola London Eye Experience\n* Free Lunch Pack\n* Transportation by Air-Conditioned Coach \n* Professional Guide",
        "itinerary": "Daily\n\nCheck-in: 7:30am \nDeparture: 8:00am\n\nReturn (approx.): 6:00pm\n\nDeparture point: 4 Fountain Square, 123-151 Buckingham Palace Road, London SW1W 9SH\nReturn point: London Eye Pier\n\n\nDEPARTURE POINT:\nGolden Tours Visitors Centre, 4 Fountain Square, 123-151 Buckingham Palace Road, London SW1W 9SH\n\nTel:  44 (0)20 7233 7030",
        "max_booking_size": 10,
        "min_booking_size": 1,
        "min_price": {
            "EUR": 13730,
            "PLN": 59330,
            "GBP": 12000,
            "USD": 16071
        },
        "please_note": "* On Sunday due to Church services, there is no guiding inside St Paul’s Cathedral\n* Bookings made after midnight for the same day will not receive a free lunch\n* *During Peak Periods, Additional Vehicles Without Wi-Fi May Be Used\n* The Guard Change may not be operational in bad weather conditions. On these occasions we will visit the Horse Guards for a photostop instead\n*No Greenwich on the below days due to Thames Clipper- LRD planned Greenwich Pier closure. The tours will operate with a boat ride from Tower Pier to London Eye where the tour will end.Dates: 7, 9, 10, 16, 17 February 2018",
        "restrictions": "",
        "sales_enabled": true,
        "summary": "Panoramic tour of London - Entry to St. Paul’s Cathedral - See the Changing of the Guard at Buckingham Palace - Entry to Tower of London - Free Thames River boat ride - Spectacular experience on the London Eye - Complimentary  Lunch Pack",
        "timezone": "Europe/London",
        "tour_operator_url": "https://www.goldentours.com/contact-us"
    },
    "instances": [
        {
            "end_datetime": "2018-07-30T17:00:00+00:00",
            "full_day": false,
            "instance_id": "351107",
            "note": "Spanish",
            "price_bands": [
                {
                    "agerange_max": 59,
                    "agerange_min": 17,
                    "min_booking_fee": {
                        "EUR": 0,
                        "PLN": 0,
                        "GBP": 0,
                        "USD": 0
                    },
                    "max_booking_fee": {
                        "EUR": 0,
                        "PLN": 0,
                        "GBP": 0,
                        "USD": 0
                    },
                    "can_be_guardian": true,
                    "description": "",
                    "min_full_price": {
                        "EUR": 13730,
                        "PLN": 59330,
                        "GBP": 12000,
                        "USD": 16071
                    },
                    "max_full_price": {
                        "EUR": 13730,
                        "PLN": 59330,
                        "GBP": 12000,
                        "USD": 16071
                    },
                    "price": {
                        "EUR": 13730,
                        "PLN": 59330,
                        "GBP": 12000,
                        "USD": 16071
                    },
                    "price_band_id": "r1",
                    "price_band_name": "Adult",
                    "require_guardian": false
                },
                {
                    "agerange_max": 15,
                    "agerange_min": 3,
                    "min_booking_fee": {
                        "EUR": 0,
                        "PLN": 0,
                        "GBP": 0,
                        "USD": 0
                    },
                    "max_booking_fee": {
                        "EUR": 0,
                        "PLN": 0,
                        "GBP": 0,
                        "USD": 0
                    },
                    "can_be_guardian": false,
                    "description": "(3 - 15 Years)",
                    "min_full_price": {
                        "EUR": 12586,
                        "PLN": 54386,
                        "GBP": 11000,
                        "USD": 14731
                    },
                    "max_full_price": {
                        "EUR": 12586,
                        "PLN": 54386,
                        "GBP": 11000,
                        "USD": 14731
                    },
                    "price": {
                        "EUR": 12586,
                        "PLN": 54386,
                        "GBP": 11000,
                        "USD": 14731
                    },
                    "price_band_id": "r2",
                    "price_band_name": "Child",
                    "require_guardian": true
                }
            ],
            "start_datetime": "2018-07-30T06:30:00+00:00",
            "spaces_remaining": 25,
            "updating": false
        },
    ],
    "total": 1
}

Returns information about a tour attraction for given date range including a list of related tour instances and price bands.

Request

GET https://sandbox.coras.io/v1/tours/{attraction_id}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
attraction_id String Yes Attraction Tour ID. Maximum length is 50 characters

Querystring parameters

Name Type Required Description
currency String No Supported currency
date_end String No Date range to (YYYY-MM-DD) (default: date_start + 7 days)
date_start String Yes Date range from (YYYY-MM-DD)
language_code String Yes Selected language
page Integer No Page number (default: 0)
size Integer No Number of attractions to return (default: 4, max: 100) per single page

Response

Name Type Description
attraction Tour Attraction Basic information about an attraction
instances List of Tour Instances List of tour instances
total Integer Number of instances attached to attraction

Tour Attraction

Name Type Description
attraction_name String Name of attraction
category_id Integer Attraction category ID. Available categories can be obtained via categories endpoint
city String City name
duration Integer Attraction take place during x days
duration_description String Detailed description
essential_information String Tour detail
excluded String Tour detail
extras_upgrades String Tour detail
geolocation_points List List of coordinates of the most important points on the tour route
highlights String Tour detail
included String Tour detail
images List of Images Attraction images
itinerary String Tour detail
languages_spoken List Possible languages to choose during attraction
max_booking_size Integer Maximum number of tickets
min_booking_size Integer Minimum number of tickets
min_price Price Minimum available price in multiple currencies.
please_note String Tour detail
restrictions String Tour detail
sales_enabled Boolean
summary String Tour detail
timezone String Attraction timezone
tour_operator_url String Direct URL to operator

Images

Name Type Description
image_w288_h125 String URL to the image with width of 288px and height of 125px
image_w200_h200 String URL to the image with width of 200px and height of 200px
image_w288_h204 String URL to the image with width of 288px and height of 204px
image_w345_h237 String URL to the image with width of 345px and height of 237px
image_w446_h300 String URL to the image with width of 466px and height of 300px
image_w1600_h300 String URL to the image with width of 1600px and height of 300px
images_w750_h340 String URL to the image with width of 750px and height of 340px

Get Tour Attraction Instance

$ curl -X GET "https://sandbox.coras.io/v1/tours/812bf18532c727f4af858eb105662cf6/instances/24121" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

{
    "end_datetime": "2018-07-30T17:00:00+00:00",
    "full_day": false,
    "instance_id": "351107",
    "note": "Spanish",
    "price_bands": [
        {
            "agerange_max": 59,
            "agerange_min": 17,
            "min_booking_fee": {
                "EUR": 0,
                "PLN": 0,
                "GBP": 0,
                "USD": 0
            },
            "max_booking_fee": {
                "EUR": 0,
                "PLN": 0,
                "GBP": 0,
                "USD": 0
            },
            "can_be_guardian": true,
            "description": "",
            "min_full_price": {
                "EUR": 13730,
                "PLN": 59330,
                "GBP": 12000,
                "USD": 16071
            },
            "max_full_price": {
                "EUR": 13730,
                "PLN": 59330,
                "GBP": 12000,
                "USD": 16071
            },
            "price": {
                "EUR": 13730,
                "PLN": 59330,
                "GBP": 12000,
                "USD": 16071
            },
            "price_band_id": "r1",
            "price_band_name": "Adult",
            "require_guardian": false
        },
        {
            "agerange_max": 15,
            "agerange_min": 3,
            "booking_fee": {
                "EUR": 0,
                "PLN": 0,
                "GBP": 0,
                "USD": 0
            },
            "min_booking_fee": {
                "EUR": 0,
                "PLN": 0,
                "GBP": 0,
                "USD": 0
            },
            "can_be_guardian": false,
            "description": "(3 - 15 Years)",
            "min_full_price": {
                "EUR": 12586,
                "PLN": 54386,
                "GBP": 11000,
                "USD": 14731
            },
            "max_full_price": {
                "EUR": 12586,
                "PLN": 54386,
                "GBP": 11000,
                "USD": 14731
            },
            "price": {
                "EUR": 12586,
                "PLN": 54386,
                "GBP": 11000,
                "USD": 14731
            },
            "price_band_id": "r2",
            "price_band_name": "Child",
            "require_guardian": true
        }
    ],
    "start_datetime": "2018-07-30T06:30:00+00:00",
    "spaces_remaining": 25,
    "updating": false
}

Returns details of a single departure for given tour and departure IDs.

Request

GET https://sandbox.coras.io/v1/tours/{tour_id}/instances/{departure_id}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
attraction_id String Yes Attraction Tour ID. Maximum length is 50 characters
instance_id String Yes Attraction Tour Instance ID

Querystring parameters

Name Type Required Description
currency String No Currency symbol. Supported currency
language_code String Yes Selected language

Tour Instance

Name Type Description
end_datetime String Datetime when departure ends (YYYY-MM-DD)
full_day Boolean Information if current departure activities takes whole day
instance_id Integer Attraction Tour Instance ID
note String Short note in multiple languages
price_bands List of Price Bands List of available price bands
spaces_remaining Integer Available places on instance
start_datetime String DateTime when instance starts (YYYY-MM-DD HH:MM:SS)
updating Boolean Indicates if data/information for given instance is updated at the moment

Price Band

Name Type Description
agerange_max Integer Years. If blank, first check agecat, secondly assume is adult
agerange_min Integer Years. i.e. Senior will have agerange_min=65
min_booking_fee Integer Minimum Price fees per ticket for current distributor
max_booking_fee Integer Maximum Price fees per ticket for current distributor
can_be_guardian Boolean Whether ticket can be bought together with type require_guardian=True
description String Short description
min_full_price Integer Minimum Price (minimum booking fee + price) for current distributor
max_full_price Integer Maximum Price (maximum booking fee + price) for current distributor
is_main_price Boolean Information if given price is main
price Price Face value price per ticket
price_band_id String Price ID
price_band_name String Ticket type name
require_guardian Boolean Whether ticket can be bought with ticket type can_be_guardian=True

Reservations

Reserve Theater Tickets

# Theater Attraction example
$ curl -X POST https://sandbox.coras.io/v1/theater-events/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -d '{"attraction_id": "54d07c194cc410e6325d9535d86c036d",
        "instance_id": 212705,
        "language_code": "en",
        "tickets": [{
            "section_id": "BAL",
            "price_band_id": "E29",
            "number_of_tickets": 2,
            "booking_fee": 300,
            "seats": []
        }]}'
{
    "reservation_id": "7a7216e7509d4f1eba24135ef4757fb1",
    "seat_range": "E21 - E22",
    "tickets": [
        {
            "booking_fee": 300,
            "coras_seat_id": "5ee5667f409bda4c88fa83fc58f030711eddb793",
            "description": "",
            "full_price": 3300,
            "name": "Full Price",
            "price": 3000,
            "price_band_id": "E29",
            "restricted_view_description": "has a slightly restricted view",
            "row_id": 92,
            "row_name": "E",
            "seat_id": 1,
            "seat_name": "E21",
            "seat_number": "21",
            "seatsio_seat_id": "BALCONY-E-21",
            "section": "Balcony",
            "section_id": "BAL"
        },
        {
            "booking_fee": 300,
            "coras_seat_id": "d58b75b3746d84bdb0193eae44b4e9e5d9a612c4",
            "description": "",
            "full_price": 3300,
            "name": "Full Price",
            "price": 3000,
            "price_band_id": "E29",
            "restricted_view_description": "has a slightly restricted view",
            "row_id": 92,
            "row_name": "E",
            "seat_id": 2,
            "seat_name": "E22",
            "seat_number": "22",
            "seatsio_seat_id": "BALCONY-E-22",
            "section": "Balcony",
            "section_id": "BAL"
        }
    ]
}

Reserves a given number of tickets for a given performance and price band, and adds them to a booking session.

Request

POST https://sandbox.coras.io/v1/theater-events/reservations

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json

Body Arguments

Name Type Required Description
attraction_id String Yes Attraction ID. Maximum length is 50 characters
currency String Yes Supported currency
instance_id Integer Yes Theater instance ID or Tour instance ID
language_code String Yes Selected language
tickets List Yes List of tickets to be reserved
to_basket Boolean No Indicates if reservation should be automatically added to the basket. True by default.

Theater Tickets Argument

Name Type Required Description
price_band_id String Yes Price Band Id - specifies ticket type
seats List No list of unique seats ID. IDs can be obtained from Seats
section_id String No Section ID
number_of_tickets Integer Yes Number of requested tickets
booking_fee Integer Yes Custom booking fee which have to be in range returned by previous API calls

Response

Name Type Description
reservation_id String Unique ID per reservation
seat_range String Seat range - DEPRECATED
tickets List of Tickets List of prebooked tickets

Ticket

Name Type Description
booking_fee Integer Booking fee value
coras_seat_id String Seat ID
full_price Integer Price including booking fee
name String Name assign to price i.e. Adult
price Integer Base price
price_band_id Integer Price band ID
restricted_description String Short description about restricted view
row_id Integer Row ID
row_name String Row label
seat_id Integer Seat number index
seat_name String Seat number
seat_number Integer Seat number
seatsio_seat_id String The seats.io seat ID
section String Section name
section_id String Section ID

Summary for Theater

Returns a summary of active (theater) reservations for a given booking session.

# Theater Attraction example
$ curl -X GET https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
    "reservations": [
        {
            "attraction_id": "54d07c194cc410e6325d9535d86c036d",
            "attraction_name": "THRILLER LIVE",
            "attraction_type_id": 1,
            "city": "London",
            "currency": "GBP",
            "end_datetime": "",
            "is_seatsio_reservation": false,
            "images": {
                "image_w96_h96": "",
                "image_w153_h121": "",
                "image_w200_h200": "",
                "image_w264_h125": "",
                "image_w304_h88": "",
                "image_w288_h125": "",
                "image_w124_h124": "",
                "image_w288_h204": "",
                "image_w279_h213": "",
                "image_w304_h81": "",
                "image_w345_h237": ""
            },
            "location_name": "Lyric Theatre",
            "number_of_tickets": 2,
            "reservation_id": "7a7216e7509d4f1eba24135ef4757fb1",
            "start_datetime": "2018-07-24T18:30:00+00:00",
            "tickets": [
                {
                    "booking_fee": 300,
                    "coras_seat_id": "5ee5667f409bda4c88fa83fc58f030711eddb793",
                    "description": "",
                    "full_price": 3300,
                    "name": "Full Price",
                    "price": 3000,
                    "price_band_id": "E29",
                    "restricted_view_description": "has a slightly restricted view",
                    "row_id": 92,
                    "row_name": "E",
                    "seat_id": 1,
                    "seat_name": "E21",
                    "seat_number": "21",
                    "seatsio_seat_id": "BALCONY-E-21",
                    "section": "Balcony",
                    "section_id": "BAL"
                },
                {
                    "booking_fee": 300,
                    "coras_seat_id": "d58b75b3746d84bdb0193eae44b4e9e5d9a612c4",
                    "description": "",
                    "full_price": 3300,
                    "name": "Full Price",
                    "price": 3000,
                    "price_band_id": "E29",
                    "restricted_view_description": "has a slightly restricted view",
                    "row_id": 92,
                    "row_name": "E",
                    "seat_id": 2,
                    "seat_name": "E22",
                    "seat_number": "22",
                    "seatsio_seat_id": "BALCONY-E-22",
                    "section": "Balcony",
                    "section_id": "BAL"
                }
            ],
            "timezone": "Europe/London",
            "total_price": 6600
        }
    ],
    "total_price": 6600
}

Request

GET http://sandbox.coras.io/v1/reservations

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Querystring parameters

Name Type Required Description
language_code String Yes Selected language

Response

Name Type Description
reservations List of Reservations List of active reservations
total_price Integer Combined price of all active reservations (in minor units, eg. cents or pence)

Reservation

Name Type Description
attraction_id String Attraction ID
attraction_name String Attraction title
attraction_type_id Integer Type of the attractions to return. See more about attraction types
city String Location city
currency String Supported currency
end_datetime String Datetime when attraction ends
images List of Image Attraction images
is_seatsio_reservation Boolean A flag indicating whether a purchase was made using the seat map
location_name String Location name. Maximum length is 64 characters
number_of_tickets Integer Number of prebooked tickets
reservation_id String Unique ID per reservation
start_datetime String Datetime when attraction starts
tickets List of Tickets List of pre-booked tickets
timezone String Attraction timezone
total_price Integer Total price of all tickets in reservation (in minor units, eg. cents or pence)

Reserve Tour Tickets

# Tour Attraction example
$ curl -X POST https://sandbox.coras.io/v1/tours/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -d '{"attraction_id": "08e36beb3acadc1e69823b4d67aea83d",
        "instance_id": 350974,
        "language_code": "en",
        "tickets": [{
            "price_band_id": "r1", 
            "number_of_tickets": 2,
            "booking_fee": 0
        }, {
            "price_band_id": "r3", 
            "number_of_tickets": 1,
            "booking_fee": 0
        }]}'
{
    "reservation_id": "fff4bf40-3098-4001-8df0-5d591c2d2569",
    "tickets": [
        {
            "age_category": "a",
            "booking_fee": 0,
            "description": "",
            "full_price": 13728,
            "name": "Adult",
            "price": 13728,
            "price_band_id": "r1"
        },
        {
            "age_category": "a",
            "booking_fee": 0,
            "description": "",
            "full_price": 13728,
            "name": "Adult",
            "price": 13728,
            "price_band_id": "r1"
        },
        {
            "age_category": "s",
            "booking_fee": 0,
            "description": "60 & up/Valid SID Card",
            "full_price": 13156,
            "name": "Senior/Student",
            "price": 13156,
            "price_band_id": "r3"
        }
    ]
}

Reserves a given number of tickets for given tour instance, and adds them to a booking session.

Request

POST https://sandbox.coras.io/v1/tours/reservations

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Body Arguments

Name Type Required Description
attraction_id String Yes Tour attraction ID. Maximum length is 50 characters
currency String Yes Supported currency
instance_id String Yes Tour instance ID.
language_code String Yes Selected language
tickets List of Tickets Yes List of tickets to be reserved
to_basket Boolean No Indicates if reservation should be automatically added to the basket. True by default.

Tour Tickets Argument

Name Type Required Description
price_band_id String Yes Price band Id. This specifies ticket type required.
number_of_tickets Integer Yes Number of requested tickets
booking_fee Integer YES Custom booking fee which have to be in range returned by previous API calls

Response

Name Type Description
reservation_id String Reservation ID
tickets List of Tour Tickets List of reserved tickets

Tour Tickets

Name Type Description
age_category String Describes ticket age category
booking_fee Integer Fees per ticket in selected currency
description String Short description in selected language
full_price Integer Full amount due for the ticket in selected currency
name String Ticket type name in selected language
price Integer Base price per ticket in selected currency
price_band_id String Price Band Id

Summary for Tour

Returns a summary of active tour reservations for a given booking session.

# Tour Attraction example
$ curl -X GET https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
{
    "reservations": [
        {
            "start_datetime": "2018-07-25T06:30:00+00:00",
            "attraction_name": "The Total London Experience with Free Lunch Pack",
            "reservation_id": "06a8d4c2d2f74328ad9df6f2a8c8b0d7",
            "currency": "EUR",
            "attraction_id": "08e36beb3acadc1e69823b4d67aea83d",
            "attraction_type_id": 2,
            "departure_notes": "English",
            "images": {
                "image_w200_h200": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=200&h=200&fit=crop&crop=edges&auto=format,enhance,compress",
                "image_w1600_h300": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=1600&h=300&fit=crop&crop=edges&auto=format,enhance,compress",
                "image_w288_h204": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=204&fit=crop&crop=edges&auto=format,enhance,compress",
                "image_w288_h125": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=288&h=125&fit=crop&crop=edges&auto=format,enhance,compress",
                "image_w446_h300": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=446&h=300&fit=crop&crop=edges&auto=format,enhance,compress",
                "images_w750_h340": [
                    "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                    "https://coras-local.imgix.net/images/675dd6eb-95f0-5fca-aa37-8a245069e089.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                    "https://coras-local.imgix.net/images/131a7d8e-d2bf-511e-9b21-0fd56a048e6a.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                    "https://coras-local.imgix.net/images/f6822249-1973-5095-bf04-7d7489aca3a5.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress",
                    "https://coras-local.imgix.net/images/dd83f806-9e16-5ed1-b054-58250dc81508.jpg?w=750&h=340&fit=crop&crop=edges&auto=format,enhance,compress"
                ],
                "image_w345_h237": "https://coras-local.imgix.net/images/9591c55d-4511-570c-a7dd-4129f01adcc1.jpg?w=345&h=237&fit=crop&crop=edges&auto=format,enhance,compress"
            },
            "location_name": "",
            "city": "London",
            "end_datetime": "2018-07-25T17:00:00+00:00",
            "number_of_tickets": 3,
            "tickets": [
                {
                    "age_category": "a",
                    "booking_fee": 0,
                    "description": "",
                    "full_price": 13728,
                    "name": "Adult",
                    "price": 13728,
                    "price_band_id": "r1"
                },
                {
                    "age_category": "a",
                    "booking_fee": 0,
                    "description": "",
                    "full_price": 13728,
                    "name": "Adult",
                    "price": 13728,
                    "price_band_id": "r1"
                },
                {
                    "age_category": "s",
                    "booking_fee": 0,
                    "description": "60 & up/Valid SID Card",
                    "full_price": 13156,
                    "name": "Senior/Student",
                    "price": 13156,
                    "price_band_id": "r3"
                }
            ],
            "timezone": "Europe/London",
            "total_price": 40612
        }
    ],
    "total_price": 40612
}

Request

GET http://sandbox.coras.io/v1/reservations

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
language_code String No Selected language

Response

Name Type Description
reservations List of Tour Reservations List of active reservations
total_price Integer Combined price of all active reservations (in minor units, eg. cents or pence)

Tour Reservations

Name Type Description
attraction_id String Show or tour ID
attraction_name String Show title or name of tour
attraction_type_id Integer Type of the attractions to return. See more about attraction types
city String Venue or location city
currency String Supported currency
end_datetime String Datetime when attraction ends
images List of Images Attraction images
is_seatsio_reservation Boolean A flag indicating whether a purchase was made using the seat map
location_name String Location name. Maximum length is 64 characters
number_of_tickets Integer Number of prebooked tickets
reservation_id String Unique ID per reservation
start_datetime String Datetime when attraction starts
tickets List of Tour Tickets List of pre-booked tickets
timezone String Event timezone
total_price Integer Total price of all tickets in reservation (in minor units, eg. cents or pence)

Confirm Reservations

Confirms all reserved tickets and returns an URL for the user transactions.

$ curl -X PUT https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223" \
   -d '{"email": "jon.snow@example.com",
        "first_name": "Jon",
        "phone_number": "111-222-333",
        "reservations": [
            "7a7216e7509d4f1eba24135ef4757fb1"
        ],
        "second_name": "Snow",
        "token": "tok_19nn4HK10yRCtOElf6Gr4X8J"}'
{
    "transaction_id": "123406179e47a6a8f06f6c486abcde",
    "user_id": "6123c32027abcd2ac07c4c5a887abcd"
}

User ID

During the process of the ticket booking confirmation if the user ID is not assigned to a booking session, a new user ID is created. The user ID is a part of URL returned by confirm reservation endpoint.

Request

PUT https://sandbox.coras.io/v1/reservations

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Body Arguments

Name Type Required Description
email String Yes Client email address
first_name String Yes Client first name
phone_number String Yes Client phone number
reservations List Yes IDs of reservations in the basket
second_name String Yes Client second name
token String Yes Stripe customer token

Response

Name Type Description
transaction_id String Unique ID per transaction
user_id String Unique ID per user

Remove all reservations

Removes all reserved tickets from a booking session.

$ curl -X DELETE https://sandbox.coras.io/v1/reservations \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

Request

DELETE https://sandbox.coras.io/v1/reservations

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Response

HTTP 204 status code when reservations were remove

Remove single reservation

Removes one of the reserved tickets from a booking session.

$ curl -X DELETE https://sandbox.coras.io/v1/reservations/7a7216e7509d4f1eba24135ef4757fb1 \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

Request

DELETE https://sandbox.coras.io/v1/reservations/{reservation_id}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
reservation String Yes Reservation ID

Response

HTTP 204 status code when reservation was remove

HTTP 404 status code when reservation timeouted

Mark Reservation as “in basket”

This endpoint marks selected offer as “in basket”

$ curl -X PUT https://sandbox.coras.io/v1/reservations/7a7216e7509d4f1eba24135ef4757fb1 \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"

Request

PUT https://sandbox.coras.io/v1/reservations/{reservation_id}

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
reservation_id String Yes Reservation ID

Output

HTTP 204 status code when ‘in_basket’ status was successfully set

HTTP 404 status code when no reservation was found for provided reservation ID

Transactions

Get User Transactions

Returns a list of a user’s transactions including their status.

$ curl -X GET "https://sandbox.coras.io/v1/transactions/ba35b0d5e2fc4928b960a1ce18cad23f" \
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223" \
[
  {
    "created_at": "2017-05-12 07:20:49.380048",
    "reference_id": "QSO74ABC",
    "status": "ADDED",
    "transaction_id": "c7bdb46d1da34855bb697164b6830295"
  },
  {
    "created_at": "2017-04-03 09:34:23.823798",
    "reference_id": "QS123ABC",
    "status": "PAID",
    "transaction_id": "f78535c3d2494c20b01a8b7e9f31e32f"
  },
  {
    "created_at": "2017-03-19 07:08:33.328081",
    "reference_id": "Q0423ABC",
    "status": "PAID",
    "transaction_id": "0f3eba74169a4610b447edc5187c393b"
  },
  {
    "created_at": "2017-03-06 10:12:35.378993",
    "reference_id": "QS123DEF",
    "status": "PAID",
    "transaction_id": "1462744c91354174afb98794c6777490"
  }
]

Request

GET https://sandbox.coras.io/v1/transactions/{transaction_id}

Headers

Header Type Required Description
Content-Type String Yes Accepts only application/json
Coras-Distributor String Yes Distributor ID

Arguments

Name Type Required Description
user_id String Yes Unique ID of the user

Response

User transactions

Name Type Description
created_at String Date and time
reference_id String Unique ID that will be presented on the user’s ticket
status String Transaction status (ADDED, PENDING, PURCHASED, FAILED)
transaction_id String Unique ID of the transaction

Localization

Get Cities

Returns all cities with available events.

$ curl -X GET "https://sandbox.coras.io/v1/events/cities?language_code=en" \
   -H "Booking-Session: 6f299e0ce1ef66e612ac45552cf9fabc"\
   -H "Content-Type: application/json" \
   -H "Coras-Distributor: f71bcdcb-9605-4514-94b6-8e8ccf1ce223"
[
  {
    "default": true,
    "name": "London",
    "search_key": "London"
  },
  {
    "default": false,
    "name": "Test city en",
    "search_key": "test city"
  }
]

Request

GET https://sandbox.coras.io/v1/events/cities/

Headers

Header Type Required Description
Booking-Session String Yes Booking session token
Content-Type String Yes Accepts only application/json

Querystring parameters

Name Type Required Description
language_code String Yes Selected language

Response

Name Type Description
default Boolean Indicates which city should be set as default search parameter
name String City name translated to specified language
search_key String Search parameters value for given city

Country Code

Throughout the API we use ISO 3166-1 (alpha-2) two-letter country codes.

Language Code

Throughout the API we use ISO 639-1 language codes . Currently we support the following languages:

Code name
da Danish
de German
en English
es Spanish
fr French
it Italian
no Norwegian
pl Polish
pt Portuguese
sv Swedish

Currency Code

Throughout the API we use ISO 4217 three-letter currency codes.

Supported currencies

Currently we support the following currencies:

code name
DKK Danish Krone
EUR Euro
GBP British Pound
NOK Norwegian Krone
PLN Polish Zloty
SEK Swedish Krone

Error Codes

HTTP 400 status is returned with more detailed error code and message in body (eg. seats are no longer available) when a request to the integration partner isn’t successful.

HTTP 401 status is returned when a booking session token is found to be invalid.

HTTP 421 status returned when the integration partner is entirely unavailable with “Partner unavailable” error message and an error code.