Seating Events

Seating Events are used manage the status of objects within a map for given event. An event represents a Seatmap + Revision and keeps track of the state. The state includes all the Objects of the Map.

Base URL:

https://seatmap.vivenu.com/api or https://seatmap.vivenu.dev/api


POST/api/event

Create an Event

Create an Event

In order to create a new event, you will have to create first a Seatmap and Revision.
If you already have a seatmap and a revision created you can create a new event with this endpoint.

Payload

Required attributes

  • Name
    seatMapId
    Type
    string
    Description

    The ID of the Seatmap to be used

  • Name
    revisionId
    Type
    string
    Description

    The ID of the Revision of the seatmap for the event

Request

POST
/api/event
const response = await fetch('https://seatmap.vivenu.com/api/event', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {token}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(  {
    "seatMapId": "507f191e810c19729de860ea",
    "revisionId": "507f191e810c19729de860ea"
  }),
})

const data = await response.json()

Response (200)

{
  "_id": "507f191e810c19729de860ea",
  "seatMapId": "507f191e810c19729de860ea",
  "revisionId": "507f191e810c19729de860ea",
  "_owner": "string",
  "createdAt": "2030-01-23T23:00:00.123Z",
  "updatedAt": "2030-01-23T23:00:00.123Z"
}

GET/api/event/:id

Get an Event

Get an Event

Request

GET
/api/event/:id
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer {token}',
  },
})

const data = await response.json()

Response (200)

{
  "_id": "507f191e810c19729de860ea",
  "seatMapId": "507f191e810c19729de860ea",
  "revisionId": "507f191e810c19729de860ea",
  "_owner": "string",
  "createdAt": "2030-01-23T23:00:00.123Z",
  "updatedAt": "2030-01-23T23:00:00.123Z"
}

GET/api/event

Get all Events

Get all Events

Request

GET
/api/event
const response = await fetch('https://seatmap.vivenu.com/api/event', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer {token}',
  },
})

const data = await response.json()

Response (200)

[
  {
    "_id": "507f191e810c19729de860ea",
    "seatMapId": "507f191e810c19729de860ea",
    "revisionId": "507f191e810c19729de860ea",
    "_owner": "string",
    "createdAt": "2030-01-23T23:00:00.123Z",
    "updatedAt": "2030-01-23T23:00:00.123Z"
  }
]

The Contingent object

Required attributes

  • Name
    name
    Type
    string
    Description

    The name of the Contingent

  • Name
    eventId
    Type
    string
    Description

    The ID of the event this Contingent belongs to

Optional attributes

  • Name
    blockedUntil
    Type
    string date-time
    Description

    An ISO timestamp indicating until when this Contingent is blocked. Unlimited if empty

  • Name
    objects
    Type
    array<string>
    Description

    An array of Status-IDs blocked through this contingent

  • Name
    generalAdmission
    Type
    boolean
    Description

    Whether the contingent is for General Admissions only

  • Name
    amount
    Type
    number float
    Description

    if generalAdmission = true. The amount of blocked seats inside of the General Admission

  • Name
    createdAt
    Type
    string date-time
    Description

    An ISO timestamp indicating when the contingent was created

  • Name
    updatedAt
    Type
    string date-time
    Description

    An ISO timestamp indicating when the contingent was updated

Example

{
  "name": "Some fancy Name",
  "eventId": "507f191e810c19729de860ea",
  "blockedUntil": "2030-01-23T23:00:00.123Z",
  "objects": [
    "string"
  ],
  "generalAdmission": true,
  "amount": 10.5,
  "createdAt": "2030-01-23T23:00:00.123Z",
  "updatedAt": "2030-01-23T23:00:00.123Z"
}

POST/api/event/:id/contingents

Create a Contingent

Create a Contingent

Payload

Optional attributes

  • Name
    type
    Type
    string
    Description
  • Name
    name
    Type
    string
    Description

    The name of the Contingent

  • Name
    blockedUntil
    Type
    string date-time
    Description

    An ISO timestamp indicating until when this Contingent is blocked. Unlimited if empty

  • Name
    objects
    Type
    array<string>
    Description

    An array of Status-IDs blocked through this contingent

  • Name
    generalAdmission
    Type
    boolean
    Description

    Whether the contingent is for General Admissions only

  • Name
    amount
    Type
    number float
    Description

    if generalAdmission = true. The amount of blocked seats inside of the General Admission

Request

POST
/api/event/:id/contingents
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea/contingents', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {token}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(  {
    "type": "legacy-contingent",
    "name": "Some fancy Name",
    "blockedUntil": "2030-01-23T23:00:00.123Z",
    "objects": [
      "string"
    ],
    "generalAdmission": true,
    "amount": 10.5
  }),
})

const data = await response.json()

Response (200)

{
  "name": "Some fancy Name",
  "eventId": "507f191e810c19729de860ea",
  "blockedUntil": "2030-01-23T23:00:00.123Z",
  "objects": [
    "string"
  ],
  "generalAdmission": true,
  "amount": 10.5,
  "createdAt": "2030-01-23T23:00:00.123Z",
  "updatedAt": "2030-01-23T23:00:00.123Z"
}

PUT/api/event/:id/contingents/:contingentId

Update a Contingent

Update a Contingent

Payload

Optional attributes

  • Name
    type
    Type
    string
    Description
  • Name
    name
    Type
    string
    Description

    The name of the Contingent

  • Name
    blockedUntil
    Type
    string date-time
    Description

    An ISO timestamp indicating until when this Contingent is blocked. Unlimited if empty

  • Name
    objects
    Type
    array<string>
    Description

    An array of Status-IDs blocked through this contingent

  • Name
    generalAdmission
    Type
    boolean
    Description

    Whether the contingent is for General Admissions only

  • Name
    amount
    Type
    number float
    Description

    if generalAdmission = true. The amount of blocked seats inside of the General Admission

Request

PUT
/api/event/:id/contingents/:contingentId
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea/contingents/507f191e810c19729de860ea', {
  method: 'PUT',
  headers: {
    Authorization: 'Bearer {token}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(  {
    "type": "legacy-contingent",
    "name": "Some fancy Name",
    "blockedUntil": "2030-01-23T23:00:00.123Z",
    "objects": [
      "string"
    ],
    "generalAdmission": true,
    "amount": 10.5
  }),
})

const data = await response.json()

Response (200)

{
  "name": "Some fancy Name",
  "eventId": "507f191e810c19729de860ea",
  "blockedUntil": "2030-01-23T23:00:00.123Z",
  "objects": [
    "string"
  ],
  "generalAdmission": true,
  "amount": 10.5,
  "createdAt": "2030-01-23T23:00:00.123Z",
  "updatedAt": "2030-01-23T23:00:00.123Z"
}

DELETE/api/event/:id/contingents/:contingentId

Delete a Contingent

Delete a Contingent

Request

DELETE
/api/event/:id/contingents/:contingentId
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea/contingents/507f191e810c19729de860ea', {
  method: 'DELETE',
  headers: {
    Authorization: 'Bearer {token}',
  },
})

const data = await response.json()

GET/api/event/:id/contingents/:contingentId

Get a Contingent

Get a Contingent

Request

GET
/api/event/:id/contingents/:contingentId
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea/contingents/507f191e810c19729de860ea', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer {token}',
  },
})

const data = await response.json()

Response (200)

{
  "name": "Some fancy Name",
  "eventId": "507f191e810c19729de860ea",
  "blockedUntil": "2030-01-23T23:00:00.123Z",
  "objects": [
    "string"
  ],
  "generalAdmission": true,
  "amount": 10.5,
  "createdAt": "2030-01-23T23:00:00.123Z",
  "updatedAt": "2030-01-23T23:00:00.123Z"
}

GET/api/event/:id/contingents

Get all Contingents

Get all Contingents

Request

GET
/api/event/:id/contingents
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea/contingents', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer {token}',
  },
})

const data = await response.json()

Response (200)

[
  {
    "name": "Some fancy Name",
    "eventId": "507f191e810c19729de860ea",
    "blockedUntil": "2030-01-23T23:00:00.123Z",
    "objects": [
      "string"
    ],
    "generalAdmission": true,
    "amount": 10.5,
    "createdAt": "2030-01-23T23:00:00.123Z",
    "updatedAt": "2030-01-23T23:00:00.123Z"
  }
]

POST/api/event/:id/reserve

Reserve (best available) objects

Reserve (best available) objects

This endpoint is intended for internal use only. It can be used to reserve specific objects directly or to reserve the best available seats within specified seating categories.

Payload

One of — Only one of the following types

Required attributes

  • Name
    statusIds
    Type
    array<string>
    Description

    The Status-ID of the objects to reserve

Optional attributes

  • Name
    childEventIds
    Type
    array<string>
    Description

    An array of Event-IDs the reservation affects too

  • Name
    token
    Type
    string
    Description

    A token to identify the reservation. Initially empty, provided in the response

  • Name
    config
    Type
    object
    Description
    Optional nested attributes (2)
    • Name
      availabilityMode
      Type
      string
      Description
    • Name
      allowedContingents
      Type
      array<string>
      Description

Request

POST
/api/event/:id/reserve
const response = await fetch('https://seatmap.vivenu.com/api/event/507f191e810c19729de860ea/reserve', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {token}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(  {
    "statusIds": [
      "string"
    ],
    "childEventIds": [
      "string"
    ],
    "token": "{TOKEN}",
    "config": {
      "availabilityMode": "default",
      "allowedContingents": [
        "string"
      ]
    }
  }),
})

const data = await response.json()

Response (200)

{
  "reservation": {
    "eventId": "507f191e810c19729de860ea",
    "childEventIds": [
      "string"
    ],
    "token": "{TOKEN}",
    "_owner": "string",
    "objects": [
      "string"
    ],
    "validUntil": "2030-01-23T23:00:00.123Z",
    "createdAt": "2030-01-23T23:00:00.123Z",
    "updatedAt": "2030-01-23T23:00:00.123Z"
  },
  "info": {
    "isSplit": true
  }
}

Was this page helpful?