openapi: 3.2.0
info:
title: WeSeeDo - WeSeeDo Personal API
version: v2.0.2
description: "The WeSeeDo Personal API allows video calling in the right way and distinguishes itself in human contact, ease of use and safety. \n### Key highlights\n- **Sandbox:** Full-fledged capabilities.\n- **Security:** HTTPS, OAuth, Rate limit.\n- **Versioning:** Supports version-less API, version tight. If no version is provided (in header) it defaults to latest version.\n\n ---\n\n[Source view](https://app.swaggerhub.com/apis/kpn/weseedo-personal-weseedo/)
[Documentation view](https://app.swaggerhub.com/apis-docs/kpn/weseedo-personal-weseedo/)\n---\n[KPN Developer](https://developer.kpn.com/)
[Getting Started](https://developer.kpn.com/getting-started)\n---"
contact:
name: API Support
email: api_developer@kpn.com
url: https://developer.kpn.com/support
termsOfService: https://developer.kpn.com/legal
servers:
- url: https://api-prd.kpn.com/communication/weseedo/weseedopersonal
tags:
- name: Personal
paths:
/personal/meetings:
post:
summary: Creates a new meeting
description: Creates a new meeting.
tags:
- Personal
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
- $ref: '#/components/parameters/user-email'
requestBody:
$ref: '#/components/requestBodies/MeetingObjectPost'
responses:
'200':
$ref: '#/components/responses/MeetingObject'
400:
$ref: '#/components/responses/bad_request'
401:
$ref: '#/components/responses/unauthorized'
403:
$ref: '#/components/responses/forbidden'
404:
$ref: '#/components/responses/not_found'
429:
$ref: '#/components/responses/too_many'
500:
$ref: '#/components/responses/server_error'
503:
$ref: '#/components/responses/service_unavailable'
get:
summary: Retrieves a list of meetings
description: Retrieves a list of meetings.
tags:
- Personal
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
- $ref: '#/components/parameters/MeetingQueryCompanyParameter'
responses:
'200':
$ref: '#/components/responses/MeetingObjectArray'
400:
$ref: '#/components/responses/bad_request'
401:
$ref: '#/components/responses/unauthorized'
403:
$ref: '#/components/responses/forbidden'
404:
$ref: '#/components/responses/not_found'
429:
$ref: '#/components/responses/too_many'
500:
$ref: '#/components/responses/server_error'
503:
$ref: '#/components/responses/service_unavailable'
/personal/meetings/{id}:
get:
summary: Retrieves a meeting
description: Retrieves information about a meeting.
tags:
- Personal
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
- $ref: '#/components/parameters/MeetingIDParameter'
responses:
'200':
$ref: '#/components/responses/MeetingObject'
400:
$ref: '#/components/responses/bad_request'
401:
$ref: '#/components/responses/unauthorized'
403:
$ref: '#/components/responses/forbidden'
404:
$ref: '#/components/responses/not_found'
429:
$ref: '#/components/responses/too_many'
500:
$ref: '#/components/responses/server_error'
503:
$ref: '#/components/responses/service_unavailable'
delete:
summary: Deletes a meeting
description: Deletes a specific meeting.
tags:
- Personal
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
- $ref: '#/components/parameters/MeetingIDParameter'
responses:
'200':
$ref: '#/components/responses/MeetingDeletedObject'
400:
$ref: '#/components/responses/bad_request'
401:
$ref: '#/components/responses/unauthorized'
403:
$ref: '#/components/responses/forbidden'
404:
$ref: '#/components/responses/not_found'
429:
$ref: '#/components/responses/too_many'
500:
$ref: '#/components/responses/server_error'
503:
$ref: '#/components/responses/service_unavailable'
/personal/sms:
post:
summary: Sends an SMS to a participant
description: Sends an SMS to a participant. SMS can only be sent once per participant.
tags:
- Personal
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
requestBody:
$ref: '#/components/requestBodies/MeetingSmsObject'
responses:
'200':
$ref: '#/components/responses/MeetingSmsObject'
400:
$ref: '#/components/responses/bad_request'
401:
$ref: '#/components/responses/unauthorized'
403:
$ref: '#/components/responses/forbidden'
404:
$ref: '#/components/responses/not_found'
429:
$ref: '#/components/responses/too_many'
500:
$ref: '#/components/responses/server_error'
503:
$ref: '#/components/responses/service_unavailable'
components:
responses:
MeetingDeletedObject:
description: Succesful operation.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
result:
$ref: '#/components/schemas/MeetingDeletedResponse'
examples:
Example:
$ref: '#/components/examples/MeetingResponseDeletedObjectSchema'
bad_request:
description: Bad Reqst
content:
application/json:
schema:
$ref: '#/components/schemas/error'
MeetingSmsObject:
description: Succesful operation.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
result:
$ref: '#/components/schemas/MeetingSmsResponse'
examples:
Example:
$ref: '#/components/examples/MeetingSmsResponseObjectSchema'
unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/error'
not_found:
description: not found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
too_many:
description: too many requests
content:
application/json:
schema:
$ref: '#/components/schemas/error'
service_unavailable:
description: service unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/error'
MeetingObjectArray:
description: Succesful operation.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
result:
type: array
items:
$ref: '#/components/schemas/MeetingResponse'
examples:
Example:
$ref: '#/components/examples/MeetingResponseObjectArraySchema'
MeetingObject:
description: Succesful operation.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
result:
$ref: '#/components/schemas/MeetingResponse'
examples:
Example:
$ref: '#/components/examples/MeetingResponseObjectSchema'
forbidden:
description: forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error'
server_error:
description: server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
schemas:
MeetingDeletedResponse:
type: object
properties:
id:
description: Meeting ID
type: string
MeetingSmsResponse:
type: object
properties:
status:
description: OK
type: string
error:
type: object
properties:
transactionId:
type: string
description: Transaction ID of the the request.
title: Transaction ID
status:
type: string
description: Status
title: Status
name:
type: string
description: Error name
title: Error name
message:
type: string
description: Error message
title: Error message
info:
type: string
description: Additional information about error.
title: Info
MeetingSmsRequestBody:
type: object
required:
- participant
- message
properties:
participant:
description: Participant ID
type: string
message:
description: SMS message (max length = 40)
type: string
CompanyResponseShort:
type: object
properties:
id:
description: Company ID
type: string
name:
description: Company name
type: string
contact:
$ref: '#/components/schemas/ContactResponse'
suspended:
description: Is suspended
type: boolean
ContactResponse:
type: object
properties:
id:
description: Contact ID
type: string
first_name:
description: First name
type: string
last_name:
description: Last name
type: string
email:
description: E-mail address
type: string
phone:
description: Phone number
type: string
language:
description: Language code (e.g. nl, en, etc.)
type: string
MeetingRequestBodyPost:
required:
- site
- participants
type: object
properties:
site:
type: string
description: Site ID
agent:
type: string
description: User ID. Not required for agents. It will create a meeting on behalf of the specified agent.
is_appointment:
type: boolean
description: Define if meeting start directly or on specific start time. Set on true for specific time and false to start the meeting directly. Default true.
time_start:
type: string
format: date-time
description: Date and time when meeting start (YYYY-MM-DD HH:mm:ss or ISO date). Only required when is_appointment is set on true.
time_end:
type: string
format: date-time
description: Date and time when meeting is not valid anymore (YYYY-MM-DD HH:mm:ss or ISO date). Leave empty to set it one hour later as start time.
participants:
type: array
items:
required:
- name
type: object
properties:
name:
type: string
description: Participant name
email:
type: string
description: Participant email for invite. Make sure that `send_email` is true. Leave empty to not send for specific participant.
phone:
type: string
description: Participant phone for invite. Make sure that `send_sms` is true. Leave empty to not send for specific participant.
subject:
type: string
description: Meeting subject
invitation:
type: string
description: Invite message. Leave empty to get invite message from specified site.
invitation_sms:
type: string
description: Invite message SMS. Leave empty to get invite message from specified site.
send_email:
type: boolean
description: Send invite mail to participants. Default false
send_sms:
type: boolean
description: Send invite SMS to participants. Default false
AccountResponseShort:
type: object
properties:
id:
description: Site ID
type: string
name:
description: Site name
type: string
MeetingResponse:
type: object
properties:
id:
type: string
description: The generated ID for this meeting.
company:
$ref: '#/components/schemas/CompanyResponseShort'
room_id:
type: string
description: The room ID that is being used for this meeting. You generally do not need to use this information.
room_password:
type: string
description: The room password that is being used for this meeting. You generally do not need to use this information.
duration:
type: integer
description: Duration of the meeting in seconds.
is_appointment:
type: boolean
description: Define if meeting start directly or on specific start time. Value is true for specific time and false to start the meeting directly.
room_created:
type: string
format: date-time
description: ISO date that described when the room is created.
room_available_from:
type: string
format: date-time
description: ISO date that described from when the room will be available.
room_available_till:
type: string
format: date-time
description: ISO date that describes until when the room will be available. If the conversation is still active at this time, it will NOT be automatically terminated!
created_by:
type: object
properties:
id:
type: string
description: User ID
name:
type: string
description: User name
site:
$ref: '#/components/schemas/AccountResponseShort'
subject:
type: string
description: Meeting subject
invitation:
type: string
description: Invite message
participants:
type: array
items:
type: object
properties:
username:
type: string
description: Automatically generated username for a participant, for an agent this username has a fixed value that is generated upon agent creation.
name:
type: string
description: Contains the name of the agent when the participant is an agent, or the phone number of the participant when it is a participant.
id:
type: string
description: The generated ID of an agent or participant.
user:
type: string
description: Only returned for agents.
email:
type: string
description: Only returned for agents.
phone:
type: string
description: Only returned for agents.
hash:
type: string
description: This value should be sent along in the secure link, it authenticates the agent and participant.
url:
type: string
description: Contains the secure link to start the meeting for agent and visitors.
examples:
MeetingRequestBodyObjectSchema:
summary: Meeting
value:
site: 35h64d8a0e14e4c24ac20f42
agent: 5aedbd02e138231a7c1d7719
is_appointment: true
time_start: '2020-03-18T14:15:00.000Z'
time_end: '2020-03-18T15:15:00.000Z'
participants:
- name: Participant 1
email: visitor1@participant.nl
phone: '+31612312312'
- name: Participant 2
email: visitor2@participant.nl
phone: '+31612312312'
subject: Meeting
invitation: Hereby I send you the confirmation for our online video call. On the specified date and time you can click the link in this email. The video call will appear on your screen and we can start the conversation. See you soon!
invitation_sms: Click on the link to join.
send_email: true
send_sms: true
MeetingResponseObjectSchema:
summary: Meeting
value:
success: true
result:
id: 6bbf64a9e13844d1d140d6e2
company:
id: 58h6aa8a0e14a4c24df20760
name: Company 1
contact:
id: 784d061c0856dc4c97774da7
first_name: Firstname
last_name: Lastname
email: contact1@weseedo.nl
phone: '+31612345678'
language: nl
suspended: false
room_id: 9Pusrq3Do43DAEQnOG9aCtLFfl2FoURd
room_password: O0p48P2TuMavG0EAtMSdpy4PbkO2h2
duration: 0
is_appointment: true
room_created: '2020-03-18T14:15:00.000Z'
room_available_from: '2020-03-18T14:15:00.000Z'
room_available_till: '2020-03-18T15:15:00.000Z'
created_by:
id: 58f6ee406a2308a38ca39dec
name: Firstname Lastname
site:
id: 47c6eedd1a14d3b20dd20771
name: Account 1
subject: Meeting
invitation: Hereby I send you the confirmation for our online video call. On the specified date and time you can click the link in this email. The video call will appear on your screen and we can start the conversation. See you soon!
participants:
- username: agent.89f6aa406a2307a38da39a4r
name: Agent
id: 5aedbd02e138231a7c1d7719
user: 58f6ee406a2308a38ca39dec
email: agent1@weseedo.nl
initial_participant: true
sessions:
- sessions
hash: qj7OqoxSt2zK6S16my8VZ28N1IigzvNl_jMz42wlA8Dj59DKV0G8zAc6PJ8LvWiHx
url: https://login.weseedo.nl/#/conversation/qj7OqoxSt2zK6S16my8VZ28N1IigzvNl_jMz42wlA8Dj59DKV0G8zAc6PJ8LvWiHx
- username: visitor.Cxo9uuYVYFAJDW47
name: Participant 1
id: 5aedbd02e138231a7c1d7820
email: visitor1@participant.nl
phone: '+31612312312'
initial_participant: true
sessions:
- sessions
hash: wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubA
url: https://login.weseedo.nl/meeting/wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubA
- username: visitor.Cxo9uuYVYFAJDW48
name: Participant 1
id: 5aedbd02e138231a7c1d7820
email: visitor2@participant.nl
phone: '+31612312312'
initial_participant: true
sessions:
- sessions
hash: wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubB
url: https://login.weseedo.nl/meeting/wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubB
MeetingResponseDeletedObjectSchema:
summary: Meeting ID
value:
success: true
result:
id: 6bbf64a9e13844d1d140d6e2
MeetingSmsResponseObjectSchema:
summary: Sms
value:
success: true
result:
status: OK
MeetingSmsRequestBodyObjectSchema:
summary: Sms
value:
participant: 58c6dd8a0a14d4b20df36e62
message: Please click on the link to join.
MeetingResponseObjectArraySchema:
summary: List of meetings
value:
success: true
result:
- id: 6bbf64a9e13844d1d140d6e2
company:
id: 58h6aa8a0e14a4c24df20760
name: Company 1
contact:
id: 784d061c0856dc4c97774da7
first_name: Firstname
last_name: Lastname
email: contact1@weseedo.nl
phone: '+31612345678'
language: nl
suspended: false
room_id: 9Pusrq3Do43DAEQnOG9aCtLFfl2FoURc
room_password: O0p48P2TuMavG0EAtMSdpy4PbkO2h1
duration: 0
is_appointment: true
room_created: '2020-03-18T14:15:00.000Z'
room_available_from: '2020-03-18T14:15:00.000Z'
room_available_till: '2020-03-18T15:15:00.000Z'
created_by:
id: 58f6ee406a2308a38ca39dec
name: Firstname Lastname
site:
id: 47c6eedd1a14d3b20dd20771
name: Account 1
subject: Meeting
invitation: Hereby I send you the confirmation for our online video call. On the specified date and time you can click the link in this email. The video call will appear on your screen and we can start the conversation. See you soon!
participants:
- username: agent.89f6aa406a2307a38da39a4r
name: Agent
id: 5aedbd02e138231a7c1d7719
user: 58f6ee406a2308a38ca39dec
email: agent1@weseedo.nl
initial_participant: true
sessions:
- sessions
hash: qj7OqoxSt2zK6S16my8VZ28N1IigzvNl_jMz42wlA8Dj59DKV0G8zAc6PJ8LvWiHx
url: https://login.weseedo.nl/#/conversation/qj7OqoxSt2zK6S16my8VZ28N1IigzvNl_jMz42wlA8Dj59DKV0G8zAc6PJ8LvWiHx
- username: visitor.Cxo9uuYVYFAJDW47
name: Participant 1
id: 5aedbd02e138231a7c1d7820
email: visitor1@participant.nl
phone: '+31612312312'
initial_participant: true
sessions:
- sessions
hash: wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubA
url: https://login.weseedo.nl/meeting/wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubA
- username: visitor.Cxo9uuYVYFAJDW48
name: Participant 1
id: 5aedbd02e138231a7c1d7820
email: visitor2@participant.nl
phone: '+31612312312'
initial_participant: true
sessions:
- sessions
hash: wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubB
url: https://login.weseedo.nl/meeting/wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubB
- id: 6bbf64a9e13844d1d140d6e3
company:
id: 58h6aa8a0e14a4c24df20760
name: Company 1
contact:
id: 784d061c0856dc4c97774da7
first_name: Firstname
last_name: Lastname
email: contact1@weseedo.nl
phone: '+31612345678'
language: nl
suspended: false
room_id: 9Pusrq3Do43DAEQnOG9aCtLFfl2FoURc
room_password: O0p48P2TuMavG0EAtMSdpy4PbkO2h1
duration: 0
is_appointment: true
room_created: '2020-03-18T14:15:00.000Z'
room_available_from: '2020-03-18T14:15:00.000Z'
room_available_till: '2020-03-18T15:15:00.000Z'
created_by:
id: 54c6ae2c7a4504a38ca39dea
name: Firstname Lastname
site:
id: 47c6eedd1a14d3b20dd20771
name: Account 1
subject: Meeting
invitation: Hereby I send you the confirmation for our online video call. On the specified date and time you can click the link in this email. The video call will appear on your screen and we can start the conversation. See you soon!
participants:
- username: agent.89f6aa406a2307a38da39a4b
name: Agent
id: 5aedbd02e138231a7c1d7720
user: 54c6ae2c7a4504a38ca39dea
email: agent2@weseedo.nl
initial_participant: true
sessions:
- sessions
hash: qj7OqoxSt2zK6S16my8VZ28N1IigzvNl_jMz42wlA8Dj59DKV0G8zAc6PJ8LvWiHy
url: https://login.weseedo.nl/#/conversation/qj7OqoxSt2zK6S16my8VZ28N1IigzvNl_jMz42wlA8Dj59DKV0G8zAc6PJ8LvWiHy
- username: visitor.Cxo9uuYVYFAJDW49
name: Participant 1
id: 5aedbd02e138231a7c1d7820
email: visitor1@participant.nl
phone: '+31612312312'
initial_participant: true
sessions:
- sessions
hash: wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubC
url: https://login.weseedo.nl/meeting/wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubC
- username: visitor.Cxo9uuYVYFAJDW50
name: Participant 1
id: 5aedbd02e138231a7c1d7820
email: visitor2@participant.nl
phone: '+31612312312'
initial_participant: true
sessions:
- sessions
hash: wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubD
url: https://login.weseedo.nl/meeting/wCPjvYM7yf7KBwGVU0OsFG6DVBAGqZ5s_6PFMcsoR0GBeKIF8AhkngSqUy9UXBubD
parameters:
MeetingQueryCompanyParameter:
name: company
description: Only select meetings with given company ID
in: query
schema:
type: string
example: 784d061c0856dc4c97774da7
MeetingIDParameter:
name: id
description: A valid meeting ID
in: path
required: true
schema:
type: string
example: 6bbf64a9e13844d1d140d6e2
user-email:
in: header
name: user_email
schema:
type: string
description: email Address of the user agent.
required: true
api_version:
in: header
name: api-version
schema:
type: string
description: API Version. If no version is provided it defaults to latest version.
required: false
requestBodies:
MeetingObjectPost:
description: JSON meeting object
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingRequestBodyPost'
examples:
Example:
$ref: '#/components/examples/MeetingRequestBodyObjectSchema'
MeetingSmsObject:
description: JSON sms object
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MeetingSmsRequestBody'
examples:
Example:
$ref: '#/components/examples/MeetingSmsRequestBodyObjectSchema'
securitySchemes:
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api-prd.kpn.com/oauth/client_credential/accesstoken?grant_type=client_credentials
scopes: {}
externalDocs:
description: HTTP response headers
url: https://developer.kpn.com/documentation-response-headers