Go City Trade API (V2)

Download OpenAPI specification:

The Go City Trade API is for trade partners to create and manage their Go City orders. This version of the API is compliant with the OCTO standards. As of Nov 2024 it is not yet ready for testing or usage but we are providing this documentation so that our API consumers can prepare their migrations. It does not interfere with the V1 API in any way.

Authorization

We currently support Bearer token authorization on all of the endpoints. You should receive credentials/instructions from your connectivity manager.

Octo-Capabilities

Our octo implementation provides certain capabilities when making requests such as including pricing. To do this with us, you may include the Octo-Capabilities header, or the _capabilities request parameter to enable a capability. Currently only the octo/pricing capability is supported.
To enable pricing you can either:

Use the headers - include a header with key Octo-Capabilities and value octo/pricing.
OR use request parameters - add a request parameter with name _capabilities and value octo/pricing


In either case, the value is a comma delimited string (ex. 'octo/pricing,octo/content')
Only available in staging as of Aug 12.

Products

At Go City, our products are our passes. Under the OCTO specification, we have one product per a combination of destination, brand [Go City, Great, Big Bus, Omnia], duration type [Days (All-Inclusive), Choices (Explorer)], and variant [Standard, Plus, Lite, Deluxe, Single-Sell]. Within each combination, we have multiple options for each duration and type [Pass, Extension], e.g 1-Day Standard Pass or 1-Choice Extension. Within our Chicago Go City All-Inclusive Standard product, we have 1 Day Standard Pass. Each option then has three possible units; an Adult unit, a Child unit, and a VIP unit.

Get Products

Fetch the list of products. Prices are included.

Authorizations:
bearerAuth
query Parameters
priceDistributionModel
string
Default: "PUBLIC"

Possible values are PUBLIC, or RESTRICTED. Defaults to PUBLIC if not specified.

Responses

Response samples

Content type
application/json
Example
[
  • {
    }
]

Get Product

Fetch the product for the given id. Prices are included.

Authorizations:
bearerAuth
path Parameters
id
required
string

Product ID – the ID of a unit

query Parameters
priceDistributionModel
string
Default: "PUBLIC"

Possible values are PUBLIC, or RESTRICTED. Defaults to PUBLIC if not specified.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "9badb9eb-859b-37b6-9546-29f3a253d5f4",
  • "internalName": "Chicago Explorer Pass",
  • "reference": "CHI Go C Df",
  • "locale": "en",
  • "timeZone": "America/Chicago",
  • "allowFreesale": true,
  • "instantConfirmation": true,
  • "instantDelivery": true,
  • "availabilityRequired": true,
  • "destinationId": "b083eec7-4310-4c38-8761-b3a323553336",
  • "destinationName": "Chicago",
  • "brand": "Go City",
  • "durationType": "CHOICE",
  • "variant": "Default",
  • "availabilityType": "OPENING_HOURS",
  • "deliveryFormats": [
    ],
  • "deliveryMethods": [
    ],
  • "redemptionMethod": "DIGITAL",
  • "options": [
    ],
  • "defaultCurrency": null,
  • "availableCurrencies": null,
  • "pricingPer": null
}

Availability

Even though our products are always available, we have implemented the Availability step of the OCTO journey for the convenience of our API consumers.

Availability Check

Check availability before making a booking. This endpoint will return an object for each individual departure time (or day). You have to perform this step to retrieve an availabilityId in order to confirm a sale.

Authorizations:
bearerAuth
query Parameters
priceDistributionModel
string
Default: "PUBLIC"

Possible values are PUBLIC, or RESTRICTED. Defaults to PUBLIC if not specified.

Request Body schema: application/json
required
productId
string
optionId
string
Array of objects
availabilityIds
Array of strings

Responses

Request samples

Content type
application/json
Example
{
  • "productId": "b562eb9f-1836-38e9-9184-4099888e53c3",
  • "optionId": "1859be8e-4c33-4cda-a0bd-f2bf4e7a589c",
  • "units": [
    ],
  • "localDateStart": "2025-06-01",
  • "localDateEnd": "2025-06-10"
}

Response samples

Content type
application/json
Example
[
  • {
    }
]

Bookings

To buy a pass you must first create a Booking and then confirm it. With your booking ID you can then make modifications to your pass order.

Get Bookings

This endpoint will fetch the bookings you have made for the given filters.

Authorizations:
bearerAuth
query Parameters
resellerReference
string

The reseller reference on the booking.

supplierReference
string

The reference provided by the supplier.

localDate
string

All bookings made for a specific date.

localDateStart
string

First date of a date range search.

localDateEnd
string

Last date of a date range search.

productId
string

The product id to filter by.

optionId
string

The option id to filter by.

Responses

Response samples

Content type
application/json
Example
[
  • {
    }
]

Booking Reservation

Create a booking that reserves the availability while you collect payment and contact information from the customer. The booking will remain with status ON_HOLD until the booking is confirmed or the reservation hold expires.

Authorizations:
bearerAuth
query Parameters
priceDistributionModel
string
Default: "PUBLIC"

Possible values are PUBLIC, or RESTRICTED. Defaults to PUBLIC if not specified.

Request Body schema: application/json
required
uuid
string
productId
string
optionId
string
availabilityId
string
notes
string
expirationMinutes
integer <int32>
Array of objects
priceDistributionModel
string

Responses

Request samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "productId": "b1f2c109-5c67-3c67-927b-2152a0d55f81",
  • "optionId": "cf613291-3777-401f-8d2b-dad9259501a2",
  • "availabilityId": "2025-07-10T00:00:00Z~5",
  • "notes": "Optional notes for the booking",
  • "expirationMinutes": 30,
  • "unitItems": [
    ],
  • "priceDistributionModel": "PUBLIC"
}

Response samples

Content type
application/json
Example
{
  • "id": "3afbaa05-c65b-4492-af39-43c863270435",
  • "uuid": "3afbaa05-c65b-4492-af39-43c863270435",
  • "supplierReference": "0201055476",
  • "resellerReference": "pao-regression-p34",
  • "testMode": true,
  • "status": "CREATED",
  • "utcCreatedAt": "2025-08-11T15:47:22Z",
  • "utcUpdatedAt": "2025-08-11T15:47:22Z",
  • "utcExpiresAt": "2026-08-12T05:00:00Z",
  • "redeemedAt": null,
  • "utcConfirmedAt": null,
  • "productId": "9badb9eb-859b-37b6-9546-29f3a253d5f4",
  • "product": {
    },
  • "optionId": "a91cb3bc-08a9-3414-a876-67507b035f9a",
  • "option": {
    },
  • "cancellable": true,
  • "cancellation": null,
  • "freesale": false,
  • "availabilityId": "2025-08-07T00:00:00Z",
  • "availability": {
    },
  • "contact": {
    },
  • "notes": null,
  • "deliveryMethods": [
    ],
  • "voucher": {},
  • "unitItems": [
    ],
  • "pricing": null
}

Booking Confirmation

This endpoint confirms the booking so it's ready to be used.

Authorizations:
bearerAuth
path Parameters
id
required
string

The UUID of the booking

query Parameters
priceDistributionModel
string
Default: "PUBLIC"

Possible values are PUBLIC, or RESTRICTED. Defaults to PUBLIC if not specified.

Request Body schema: application/json
required
resellerReference
string
object

Responses

Request samples

Content type
application/json
{
  • "resellerReference": "octotest8",
  • "contact": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": "3afbaa05-c65b-4492-af39-43c863270435",
  • "uuid": "3afbaa05-c65b-4492-af39-43c863270435",
  • "supplierReference": "0201055476",
  • "resellerReference": "pao-regression-p34",
  • "testMode": true,
  • "status": "CONFIRMED",
  • "utcCreatedAt": "2025-08-11T15:47:22Z",
  • "utcUpdatedAt": "2025-08-11T15:47:22Z",
  • "utcExpiresAt": "2026-08-12T05:00:00Z",
  • "redeemedAt": null,
  • "utcConfirmedAt": "2025-08-11T15:47:22Z",
  • "productId": "9badb9eb-859b-37b6-9546-29f3a253d5f4",
  • "product": {
    },
  • "optionId": "a91cb3bc-08a9-3414-a876-67507b035f9a",
  • "option": {
    },
  • "cancellable": true,
  • "cancellation": null,
  • "freesale": false,
  • "availabilityId": "2025-08-07T00:00:00Z",
  • "availability": {
    },
  • "contact": {
    },
  • "notes": null,
  • "deliveryMethods": [
    ],
  • "voucher": {},
  • "unitItems": [
    ],
  • "pricing": null
}

Booking Cancellation

A booking can only be cancelled if booking.cancellable is TRUE, and it is within the booking cancellation cut-off window.

Authorizations:
bearerAuth
path Parameters
id
required
string

The UUID of the booking

Request Body schema: application/json
required
force
boolean
reason
string

Responses

Request samples

Content type
application/json
{
  • "force": true,
  • "reason": "Customer Requested"
}

Response samples

Content type
application/json
Example
{
  • "id": "3afbaa05-c65b-4492-af39-43c863270435",
  • "uuid": "3afbaa05-c65b-4492-af39-43c863270435",
  • "supplierReference": "0201055476",
  • "resellerReference": "pao-regression-p34",
  • "testMode": true,
  • "status": "CANCELLED",
  • "utcCreatedAt": "2025-08-11T15:47:22Z",
  • "utcUpdatedAt": "2025-08-11T15:47:57Z",
  • "utcExpiresAt": "2026-08-12T05:00:00Z",
  • "redeemedAt": null,
  • "utcConfirmedAt": "2025-08-11T15:47:22Z",
  • "productId": "9badb9eb-859b-37b6-9546-29f3a253d5f4",
  • "product": {
    },
  • "optionId": "a91cb3bc-08a9-3414-a876-67507b035f9a",
  • "option": {
    },
  • "cancellable": false,
  • "cancellation": {
    },
  • "freesale": false,
  • "availabilityId": "2025-08-07T00:00:00Z",
  • "availability": {
    },
  • "contact": {
    },
  • "notes": null,
  • "deliveryMethods": [
    ],
  • "voucher": {
    },
  • "unitItems": [
    ],
  • "pricing": null
}

Get Booking

Fetch the status of an existing booking.

Authorizations:
bearerAuth
path Parameters
id
required
string

The UUID of the booking

Responses

Response samples

Content type
application/json
Example
{
  • "id": "3afbaa05-c65b-4492-af39-43c863270435",
  • "uuid": "3afbaa05-c65b-4492-af39-43c863270435",
  • "supplierReference": "0201055476",
  • "resellerReference": "pao-regression-p34",
  • "testMode": true,
  • "status": "CONFIRMED",
  • "utcCreatedAt": "2025-08-11T15:47:22Z",
  • "utcUpdatedAt": "2025-08-11T15:47:22Z",
  • "utcExpiresAt": "2026-08-12T05:00:00Z",
  • "redeemedAt": null,
  • "utcConfirmedAt": "2025-08-11T15:47:22Z",
  • "productId": "9badb9eb-859b-37b6-9546-29f3a253d5f4",
  • "product": {
    },
  • "optionId": "a91cb3bc-08a9-3414-a876-67507b035f9a",
  • "option": {
    },
  • "cancellable": true,
  • "cancellation": null,
  • "freesale": false,
  • "availabilityId": "2025-08-07T00:00:00Z",
  • "availability": {
    },
  • "contact": {
    },
  • "notes": null,
  • "deliveryMethods": [
    ],
  • "voucher": {},
  • "unitItems": [
    ],
  • "pricing": null
}

Supplier

Get Supplier

Fetch supplier information.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{}