Custom object status
Rate limits
This endpoint belongs to the priority lane.
If you need more statuses than just booked and free, you can use this API call to change the status of a seat, table or booth to your own custom status.
- Text
- PHP
- C#
- Java
- Python
- Ruby
- Javascript
- Go
POST https://api-{region}.seatsio.net/events/{eventKey}/actions/change-object-status
POST https://api-{region}.seatsio.net/events/{eventKey}/actions/change-object-status?expand=objects
// No ticket types
$seatsioClient->events->changeObjectStatus("event1", ["A-3", "A-5"], "myCustomStatus");
// Ticket types
$seatsioClient->events->changeObjectStatus(
"event1",
[
["objectId" => "A-3", "ticketType" => "adult"],
["objectId" => "A-5", "ticketType" => "child"]
],
"myCustomStatus"
);
// No ticket types
await Client.Events.ChangeObjectStatusAsync("event1", new [] { "A-3", "A-5" }, "myCustomStatus");
// Ticket types
ObjectProperties object1 = new ObjectProperties("A-3", "adult");
ObjectProperties object2 = new ObjectProperties("A-5", "child");
await Client.Events.ChangeObjectStatusAsync("event1", new [] { object1, object2 }, "myCustomStatus");
// No ticket types
client.events.changeObjectStatus("event1", List.of("A-3", "A-5"), "myCustomStatus");
// Ticket types
ObjectProperties object1 = new ObjectProperties("A-3", "adult");
ObjectProperties object2 = new ObjectProperties("A-5", "child");
client.events.changeObjectStatus("event1", List.of(object1, object2), "myCustomStatus");
# No ticket types
client.events.change_object_status("event1", ["A-3", "A-5"], status="myCustomStatus")
# Ticket types
object1 = ObjectProperties("A-3", ticket_type="adult")
object2 = ObjectProperties("A-5", ticket_type="child")
client.events.change_object_status("event1", [object1, object2], status="myCustomStatus")
# No ticket types
client.events.change_object_status('event1', ['A-3', 'A-5'], 'myCustomStatus')
# Ticket types
object1 = {:objectId => 'A-3', :ticketType => 'adult'}
object2 = {:objectId => 'A-5', :ticketType => 'child'}
client.events.change_object_status('event1', [object1, object2], 'myCustomStatus')
// No ticket types
await client.events.changeObjectStatus('eventKey', ['A-3', 'A-5'], 'myCustomStatus');
// Ticket types
let object1 = {objectId: 'A-3', ticketType: 'adult'};
let object2 = {objectId: 'A-5', ticketType: 'child'};
await client.events.changeObjectStatus('eventKey', [object1, object2], 'myCustomStatus');
// No ticket types
client.Events.ChangeObjectStatus([]string{"eventKey"}, string[]{"A-3", "A-5"}, 'myCustomStatus');
// Ticket types
object1 := events.ObjectProperties{ObjectId: "A-3", TicketType: "adult"}
object2 := events.ObjectProperties{ObjectId: "A-5", TicketType: "child"}
objects, err := client.Events.ChangeObjectStatusWithOptions(&events.StatusChangeParams{
Events: []string{"eventKey"},
StatusChanges: events.StatusChanges{
Status: 'myCustomStatus',
Objects: []events.ObjectProperties{object1, object2},
},
})
Note
All seats (or tables, booths or GA places) passed in to this API will be considered as "used seats" for pricing purposes.
Request
// No ticket types
{
"objects": ["A-3", "A-5"],
"status": "myCustomStatus"
}
// Ticket types
{
"objects": [
{"objectId": "A-1", "ticketType": "adult"},
{"objectId": "A-2", "ticketType": "child"}
],
"status": "myCustomStatus"
}
- objects: an array of object ids, or an array of object ids and ticket types
- type (optional): the type of action to perform. Possible values are
CHANGE_STATUS_TO
(the default) orRELEASE
. - status: the status you want to assign to the objects. Cannot be passed in if
type
isRELEASE
. Must be passed in iftype
isCHANGE_STATUS_TO
. - holdToken (optional): the hold token must be supplied when you want to make sure that the same person that made the hold confirms his booking.
- orderId (optional): an order id, defined by yourself, to be able to retrieve the objects IDs per order later on.
- keepExtraData (optional): boolean. If set to true, the existing extra data doesn't get cleared
- channelKeys (optional): an array of strings, i.e. the channel keys of the channel(s) to which the objects belong. If omitted, and the objects are assigned to a channel, the request will fail with 400 Bad request. Pass in
NO_CHANNEL
as channel key to allow objects without a channel. - ignoreChannels (optional): if true, the status change call succeeds, even if the objects belong to a channel. Useful inside a back office application, in which the user is allowed to book any seat - no matter the channel. Should not be used in combination with
channelKeys
. - allowedPreviousStatuses (optional): an array of strings, i.e. the list of statuses that the objects must be in. The request will fail with a 400 Bad Request if any of the objects have a status not present in the
allowedPreviousStatuses
list. Cannot be used in combination withrejectedPreviousStatuses
. - rejectedPreviousStatuses (optional): an array of strings, i.e. the list of statuses that the objects cannot be in. The request will fail with a 400 Bad Request if any of the objects have a status that is present in the
rejectedPreviousStatuses
list. Cannot be used in combination withallowedPreviousStatuses
.
A note on type
There are two types of actions you can perform: CHANGE_STATUS_TO
(the default) and RELEASE
.
CHANGE_STATUS_TO
is the default action, and is used to change the status of objects in the event group to a specific status:free
,resale
,booked
or a custom status.RELEASE
is used to release objects in the event group: in that case you don't specify a specific status, but the objects will get the selectable status it had previously (eitherfree
orresale
).
Response
Without expand=objects 204 - No Content
With expand=objects 200 - ok
- Row seat
- Table seat
- Section seat
- Booth
- Table
- Area
{
"objects": {
"A-3": {
"label": "A-3",
"labels": {
"own": {
"label": "3",
"type": "seat"
},
"parent": {
"label": "Row A",
"type": "row"
}
},
"ids": {
"own": "3",
"parent": "A"
},
"status": "myCustomStatus",
"categoryLabel": "Ground Floor",
"categoryKey": "4",
"forSale": true,
"objectType": "seat",
"isAccessible": true,
"isCompanionSeat": false,
"hasRestrictedView": false,
"leftNeighbour": "A-2",
"rightNeighbour": "A-4",
"entrance": "Blue",
"seasonStatusOverriddenQuantity": 0,
"floor": {
"name": "1",
"displayName": "Ground Floor"
}
}
}
}
{
"objects": {
"T1-3": {
"label": "T1-3",
"labels": {
"own": {
"label": "3",
"type": "seat"
},
"parent": {
"label": "Table T1",
"type": "table"
},
},
"ids": {
"own": "3",
"parent": "T1"
},
"status": "myCustomStatus",
"categoryLabel": "Ground Floor",
"categoryKey": "4",
"forSale": true,
"objectType": "seat",
"isAccessible": true,
"isCompanionSeat": false,
"hasRestrictedView": false,
"seasonStatusOverriddenQuantity": 0,
"floor": {
"name": "1",
"displayName": "Ground Floor"
}
}
}
}
{
"objects": {
"STA-A-3": {
"label": "STA-A-3",
"labels": {
"own": {
"label": "3",
"type": "seat"
},
"parent": {
"label": "Row A",
"type": "row"
},
"section": "Stalls"
},
"ids": {
"own": "3",
"parent": "A",
"section": "STA"
},
"status": "myCustomStatus",
"categoryLabel": "Ground Floor",
"categoryKey": "4",
"forSale": true,
"objectType": "seat",
"section": "STA",
"entrance": "Red",
"isAccessible": true,
"isCompanionSeat": false,
"hasRestrictedView": false,
"seasonStatusOverriddenQuantity": 0,
"floor": {
"name": "1",
"displayName": "Ground Floor"
}
}
}
}
{
"objects": {
"B1": {
"label": "B1",
"labels": {
"own": {
"label": "B1",
"type": "booth"
}
},
"ids": {
"own": "B1"
},
"status": "myCustomStatus",
"categoryLabel": "Ground Floor",
"categoryKey": "4",
"forSale": true,
"objectType": "booth",
"seasonStatusOverriddenQuantity": 0,
"floor": {
"name": "1",
"displayName": "Ground Floor"
}
}
}
}
{
"objects": {
"T1": {
"label": "T1",
"labels": {
"own": {
"label": "T1",
"type": "table"
}
},
"ids": {
"own": "T1"
},
"status": "myCustomStatus",
"categoryLabel": "Ground Floor",
"categoryKey": "4",
"forSale": true,
"objectType": "table",
"numSeats": 5,
"seasonStatusOverriddenQuantity": 0,
"floor": {
"name": "1",
"displayName": "Ground Floor"
}
}
}
}
{
"objects": {
"GA1": {
"label": "GA1",
"labels": {
"own": {
"label": "General Admission 1",
"type": "generalAdmission"
}
},
"ids": {
"own": "GA1"
},
"status": "myCustomStatus",
"categoryLabel": "Ground Floor",
"categoryKey": "4",
"forSale": true,
"objectType": "generalAdmission",
"seasonStatusOverriddenQuantity": 0,
"floor": {
"name": "1",
"displayName": "Ground Floor"
}
}
}
}
- objects: JSON object that contains detailed information about the objects