Skip to content

Create meeting

Endpoint

POST /v3/meeting

To attend a meeting or get information about the meeting it needs to be created first. You need to fetch the organization you belong to first if you want to create a meeting. Pass the organization user email as an argument who is going to be an admin of the meeting after you fetch the organization details.

When creating a meeting with query parameters, a shortened version of the link to the meeting is produced, allowing a more convenient means of sharing.

Please note that you cannot create a CONSULTATION type long-lasting meeting, which means that passing isInfinite param when creating a CONSULTATION type meeting will result in an error.

Parameters

Medical organization

Key Type Description
ownerEmail required (String) a valid value of organization member email. The member must belong to the same organization as you.
type optional (MEETING or CONSULTATION) a type of meeting. Not providing this field defaults to MEETING meeting.
isInfinite optional (Boolean) a boolean value if the meeting should be long-lasting or not.
meetingId optional (String) a valid UUID v4 value, that will be used as a meeting identifier. Not providing it generates a random UUID v4 identifier.
queryParameters optional (Object) a valid JSON object containing key-value pairs that correspond to the possible URL parameters required to customize the meeting experience.

Basic organization

Key Type Description
ownerEmail optional (String) a valid value of organization member email. The member must belong to the same organization as you.
type optional (MEETING or CONSULTATION) a type of meeting. Not providing this field defaults to MEETING type.
isInfinite optional (Boolean) a boolean value if the meeting should be long-lasting or not.
meetingId optional (String) a valid UUID v4 value, that will be used as a meeting identifier. Not providing it generates a random UUID v4 identifier.
queryParameters optional (Object) a valid JSON object containing key-value pairs that correspond to the possible URL parameters required to customize the meeting experience.

Returns

Returns the meeting object if a valid request was made, and returns an error otherwise.

Bash
curl --location --request POST 'https://api.meedio.me/api/v3/meeting' \
--header 'API_KEY: meedio_key' \
--header 'API_SECRET: meedio_secret' \
--header 'Content-Type: application/json' \
--data-raw '{"ownerEmail":"john@meedio.me"}'
Ruby
require "uri"
require "net/http"

url = URI("https://api.meedio.me/api/v3/meeting")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["API_SECRET"] = "meedio_secret"
request["API_KEY"] = "meedio_key"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
  "ownerEmail" => "john@meedio.me"
})

response = https.request(request)
puts response.read_body
JavaScript
var axios = require("axios");
var qs = require("qs");
var data = {
  ownerEmail: "john@meedio.me",
};
var config = {
  method: "post",
  url: "https://api.meedio.me/api/v3/meeting",
  headers: {
    API_SECRET: "meedio_secret",
    API_KEY: "meedio_key",
    "Content-Type": "application/json",
  },
  data: data,
};

axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });
Python
import requests

url = "https://api.meedio.me/api/v3/meeting"

payload = json.dumps({
  "ownerEmail": "john@meedio.me"
})
headers = {
  'API_SECRET': 'meedio_secret',
  'API_KEY': 'meedio_key',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
PHP
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.meedio.me/api/v3/meeting');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'API_SECRET' => 'meedio_secret',
  'API_KEY' => 'meedio_key',
  'Content-Type' => 'application/json'
));
$request->setBody(json_encode(array(
  'ownerEmail' => 'john@meedio.me'
)));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
Go
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.meedio.me/api/v3/meeting"
  method := "POST"

  payload := bytes.NewBuffer([]byte(`{"ownerEmail":"john@meedio.me"}`))

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("API_SECRET", "meedio_secret")
  req.Header.Add("API_KEY", "meedio_key")
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}