Skip to main content

Voilà API (1.0.0)

Download OpenAPI specification:Download

Voilà Api

Introduction

This API describes the public APIs of the Voilà platform

OpenAPI Specification

This API is documented in OpenAPI format v3.0

Versioning

This API is versioned 1.0.0, the path contains /v1.

Some new optional attributes in the API responses or/and in API request bodies may be added in the future.

A client must be able to ignore these new attributes.

The API will be backward compatible with the current version.

Support

Browse our support web site https://support.voila.live to retrieve frequently asked questions or contact us by email

Public API Support

Authentication

This API offers a form of authentication based on a Bearer token (JWT access token).

  • Authorization header with a Bearer token

The bearer token is a JWT access token that can be retrieved from the authentication endpoint with a client id and client secret.

The bearer token contains an expiration date. Client Id and Client Secret can be found in the Public API section of the Integrations page of the Voilà backoffice called Backstage

The client secret must be kept secret and should never be shared publicly.

A clientId/clientSecret allows you to access the Voilà API on behalf of your organization.

The organization identifier can also be found in the Public API section of the Integrations page of the Voilà backoffice called Backstage https://backstage.voila.live.

Scope

When requesting a bearer token from the authentication endpoint, you must specify the scope `voila/partner_access'.

Example request to get an access token

client id and client secret must be encoded in base64 and sent in the Authorization header such as:

Authorization: Basic BASE64(CLIENT_ID:CLIENT_SECRET)

curl --request POST \
  --url https://public-auth.voila.live/oauth2/token \
  --header 'Authorization: Basic NXNjYTh1Z3A1N21zYWdidGticGlicGpqMGk6dGdw' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials \
  --data 'scope=voila/partner_access'
{
  "access_token": "eyJraWQiOiJzNUVENGNOYnBld3BnTEc0cHR0TGZ6eExzS2U0a1J0Q2l0R2xlYnBLblwvWT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1c2NhOHVncDU3bXNhZ2J0a2JwaWJwamowaSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoidm9pbGFcL2FuYWx5dGljczpyZWFkIHZvaWxhXC9yZWdpc3RyYXRpb246d3JpdGUiLCJhdXRoX3RpbWUiOjE2OTQwMDQ1NTIsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbVwvZXUtd2VzdC0xX1JlV3g3NVQ4bSIsImV4cCI6MTY5NDAwODE1MiwiaWF0IjoxNjk0MDA0NTUyLCJ2ZXJzaW9uIjoyLCJqdGkiOiI1MDBlODI2MC1lOWQxLTRjYjYtYTgxYS02YzlmZDlmNWQ2ZTMiLCJjbGllbnRfaWQiOiI1c2NhOHVncDU3bXNhZ2J0a2JwaWJwamowaSJ9.YcbHxB_JwHSwpOKWtZSf5HCZv20QibT3riT9JpkrGOGNAt3HGRd2dIQuEyCdqtCroTWCluUxj3WtKmTaYQ05aybWpxEH7GaHKJbQa52RKfjJWkYxuwep86E-c5LrY38JDo3p1EIjHADF-eqvj91IkgX0dGQxToyTiI5IWJBfFUxb-lQ9ATvrIgj40UTDLTfDxwVblrdCmXlD8vgMThhB1YXebo5Ik94eb4xUaaMFG95KXu42kUNKK0m3_3JKhZ_me57uiWzJTo-7rYCX1ncxBgH0kqtFpwEBPSg3FPpp2Knz2CEE3vFgk9YIW6IvmQkfRsY8v98tkZ5lwEBuX8MOdg",
  "expires_in": 3600,
  "token_type": "Bearer"
}

Exemple request to call an API endpoint

curl --request GET \
  --url https://public-api.voila.live/organizations/123/ping \
  --header 'Authorization: Bearer eyJraWQiOiJzNUVENGNOYnBld3BnTEc0cHR0TGZ6eExzS2U0a1J0Q2l0R2xlYnBLblwvWT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1c2NhOHVncDU3bXNhZ2J0a2JwaWJwamowaSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoicHVibGljYXBpXC9yZWFkOndyaXRlOm9yZ2FuaXphdGlvbjoxMjMiLCJhdXRoX3RpbWUiOjE2OTM1Nzk0MjAsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbVwvZXUtd2VzdC0xX1JlV3g3NVQ4bSIsImV4cCI6MTY5MzU4MzAyMCwiaWF0IjoxNjkzNTc5NDIwLCJ2ZXJzaW9uIjoyLCJqdGkiOiJlYTlmMjFiOS1lYTg0LTQ5ZjYtODY0Zi0xZWVmMWE4ZGY5ZTUiLCJjbGllbnRfaWQiOiI1c2NhOHVncDU3bXNhZ2J0a2JwaWJwamowaSJ9.IND7_YWyfXZly_AQh5dxBdmT-aqAvQJky5dsZnWLhRYkQ_9U5bsQzTw0tBLo3Jj0nb-jKKgVTiPROlNC0u9dAUbnpXpZTsaEE4NiE1tF2EUqfauLDs63iLPvM5rK_7JbRFrtT1fh5T7-lvUxDsuVZytXB0HDuES1NX60v_zN8X_zfIfoHgW4jziCXjlMtMASSD81F-6hhTWX3GHinrkmJcO-w2vFeP4G547lr6u4iICci-_TBhqAFJHUh-2F59ByUKJt2uiIqED5XRgV2925IDtck59xwkKr_wxYnFLlZmg7kIFBQz8gKjZ57hZe8TIHMlQrQSfcNUqxKQMtfxpI-A'

Ping

Endpoints to test authentication

Test authentication

Return organizationId. This can be suitable for testing the authentication mechanism.

Authorizations:
OAuth2
path Parameters
organizationId
required
string

Identifier of the organization. Organization is the equivalent of a tenant. This is a fixed identifier that can be found on https://backstage.voila.live. An organization can contain several programs.

Responses

Response samples

Content type
application/json
{
  • "organizationId": "string"
}

Attendees

Endpoints to manage attendees

Register an attendee

Register an attendee for a given program

Authorizations:
OAuth2
path Parameters
organizationId
required
string

Identifier of the organization. Organization is the equivalent of a tenant. This is a fixed identifier that can be found on https://backstage.voila.live. An organization can contain several programs.

programId
required
string

Identifier of the program. Program id can be found on https://backstage.voila.live. A program can contain several sessions.

Request Body schema: application/json
externalId
string

use this field to identify an attendee with your own identifier

firstName
required
string
lastName
required
string
email
required
string
isPersonalDataSharingAccepted
required
boolean

true if attendee has accepted GDPR-related terms or conditions

Responses

Request samples

Content type
application/json
{
  • "externalId": "string",
  • "firstName": "John",
  • "lastName": "Smith",
  • "email": "email@simple.com",
  • "isPersonalDataSharingAccepted": true
}

Response samples

Content type
application/json
{
  • "id": "2UkeHgurPvSkil8XB87WUldZzSv",
  • "externalId": "string",
  • "organizationId": "string",
  • "programId": "string",
  • "createdAt": "2024-01-29T08:17:59.264Z",
  • "firstName": "John",
  • "lastName": "Smith",
  • "email": "john.smith@voila.live",
  • "isPersonalDataSharingAccepted": true,
  • "accessLink": "string"
}

Get attendees statistics

List all attendees who showed up during the live or watched the replay for a given session inside a program.

Authorizations:
OAuth2
path Parameters
organizationId
required
string

Identifier of the organization. Organization is the equivalent of a tenant. This is a fixed identifier that can be found on https://backstage.voila.live. An organization can contain several programs.

programId
required
string

Identifier of the program. Program id can be found on https://backstage.voila.live. A program can contain several sessions.

sessionId
required
string

Identifier of the session. Session id can be found on https://backstage.voila.live.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Chat

Endpoints to retrieve chat messages

List chat messages

List all chat messages from attendees after your live for a given session inside a program.

Authorizations:
OAuth2
path Parameters
organizationId
required
string

Identifier of the organization. Organization is the equivalent of a tenant. This is a fixed identifier that can be found on https://backstage.voila.live. An organization can contain several programs.

programId
required
string

Identifier of the program. Program id can be found on https://backstage.voila.live. A program can contain several sessions.

sessionId
required
string

Identifier of the session. Session id can be found on https://backstage.voila.live.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Questions

Endpoints to retrieve questions

List questions

List all questions from attendees after your live for a given session inside a program

Authorizations:
OAuth2
path Parameters
organizationId
required
string

Identifier of the organization. Organization is the equivalent of a tenant. This is a fixed identifier that can be found on https://backstage.voila.live. An organization can contain several programs.

programId
required
string

Identifier of the program. Program id can be found on https://backstage.voila.live. A program can contain several sessions.

sessionId
required
string

Identifier of the session. Session id can be found on https://backstage.voila.live.

Responses

Response samples

Content type
application/json
[
  • {
    }
]