User Registration
curl --request POST \
--url https://api.example.com/register \
--header 'Content-Type: application/json' \
--data '
{
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"password": "<string>",
"specialty": "<string>",
"ehr_system_type": "<string>",
"ehr_system_name": "<string>",
"title": "<string>",
"anrede": "<string>",
"teamInviteToken": "<string>"
}
'import requests
url = "https://api.example.com/register"
payload = {
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"password": "<string>",
"specialty": "<string>",
"ehr_system_type": "<string>",
"ehr_system_name": "<string>",
"title": "<string>",
"anrede": "<string>",
"teamInviteToken": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
lastName: '<string>',
email: '<string>',
password: '<string>',
specialty: '<string>',
ehr_system_type: '<string>',
ehr_system_name: '<string>',
title: '<string>',
anrede: '<string>',
teamInviteToken: '<string>'
})
};
fetch('https://api.example.com/register', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/register",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'firstName' => '<string>',
'lastName' => '<string>',
'email' => '<string>',
'password' => '<string>',
'specialty' => '<string>',
'ehr_system_type' => '<string>',
'ehr_system_name' => '<string>',
'title' => '<string>',
'anrede' => '<string>',
'teamInviteToken' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/register"
payload := strings.NewReader("{\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"specialty\": \"<string>\",\n \"ehr_system_type\": \"<string>\",\n \"ehr_system_name\": \"<string>\",\n \"title\": \"<string>\",\n \"anrede\": \"<string>\",\n \"teamInviteToken\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/register")
.header("Content-Type", "application/json")
.body("{\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"specialty\": \"<string>\",\n \"ehr_system_type\": \"<string>\",\n \"ehr_system_name\": \"<string>\",\n \"title\": \"<string>\",\n \"anrede\": \"<string>\",\n \"teamInviteToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"specialty\": \"<string>\",\n \"ehr_system_type\": \"<string>\",\n \"ehr_system_name\": \"<string>\",\n \"title\": \"<string>\",\n \"anrede\": \"<string>\",\n \"teamInviteToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"_id": "6578a1b2c3d4e5f601234567",
"title": "Dr.",
"firstName": "John",
"lastName": "Doe",
"email": "doctor@example.com",
"specialty": "Cardiology",
"ehr_system_type": "Epic",
"ehr_system_name": "Epic MyChart",
"isVerified": false
}
}
Authentication
User Registration
Create a new healthcare-professional account
POST
/
register
User Registration
curl --request POST \
--url https://api.example.com/register \
--header 'Content-Type: application/json' \
--data '
{
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"password": "<string>",
"specialty": "<string>",
"ehr_system_type": "<string>",
"ehr_system_name": "<string>",
"title": "<string>",
"anrede": "<string>",
"teamInviteToken": "<string>"
}
'import requests
url = "https://api.example.com/register"
payload = {
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"password": "<string>",
"specialty": "<string>",
"ehr_system_type": "<string>",
"ehr_system_name": "<string>",
"title": "<string>",
"anrede": "<string>",
"teamInviteToken": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
firstName: '<string>',
lastName: '<string>',
email: '<string>',
password: '<string>',
specialty: '<string>',
ehr_system_type: '<string>',
ehr_system_name: '<string>',
title: '<string>',
anrede: '<string>',
teamInviteToken: '<string>'
})
};
fetch('https://api.example.com/register', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/register",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'firstName' => '<string>',
'lastName' => '<string>',
'email' => '<string>',
'password' => '<string>',
'specialty' => '<string>',
'ehr_system_type' => '<string>',
'ehr_system_name' => '<string>',
'title' => '<string>',
'anrede' => '<string>',
'teamInviteToken' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/register"
payload := strings.NewReader("{\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"specialty\": \"<string>\",\n \"ehr_system_type\": \"<string>\",\n \"ehr_system_name\": \"<string>\",\n \"title\": \"<string>\",\n \"anrede\": \"<string>\",\n \"teamInviteToken\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/register")
.header("Content-Type", "application/json")
.body("{\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"specialty\": \"<string>\",\n \"ehr_system_type\": \"<string>\",\n \"ehr_system_name\": \"<string>\",\n \"title\": \"<string>\",\n \"anrede\": \"<string>\",\n \"teamInviteToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"specialty\": \"<string>\",\n \"ehr_system_type\": \"<string>\",\n \"ehr_system_name\": \"<string>\",\n \"title\": \"<string>\",\n \"anrede\": \"<string>\",\n \"teamInviteToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"_id": "6578a1b2c3d4e5f601234567",
"title": "Dr.",
"firstName": "John",
"lastName": "Doe",
"email": "doctor@example.com",
"specialty": "Cardiology",
"ehr_system_type": "Epic",
"ehr_system_name": "Epic MyChart",
"isVerified": false
}
}
Overview
Registers a new healthcare-professional account. New accounts are created unverified; a verification email is sent, and email verification is enforced at login. No authentication is required to call this endpoint, and it is not rate limited. Platform messages are returned in German.Body Parameters
First name.
Last name.
Professional email address. Validated and normalized; must be unique.
Account password. Minimum 6 characters (no complexity rules enforced).
Medical specialty.
EHR system category.
Specific EHR system name.
Medical title (Dr., Prof.). Optional.
Salutation; stored only when
Herr or Frau.Team invitation token. When valid, the new user joins the team and inherits its subscription.
Response
Returns201 Created with the newly created account under result.
true when the account is created.The created account.
Show result
Show result
Example Request
curl -X POST https://app.medisync.me/api/register \
-H "Content-Type: application/json" \
-d '{
"title": "Dr.",
"firstName": "John",
"lastName": "Doe",
"email": "doctor@example.com",
"password": "your_password",
"specialty": "Cardiology",
"ehr_system_type": "Epic",
"ehr_system_name": "Epic MyChart"
}'
Example Response
{
"success": true,
"result": {
"_id": "6578a1b2c3d4e5f601234567",
"title": "Dr.",
"firstName": "John",
"lastName": "Doe",
"email": "doctor@example.com",
"specialty": "Cardiology",
"ehr_system_type": "Epic",
"ehr_system_name": "Epic MyChart",
"isVerified": false
}
}
A new account cannot log in until its email address is verified. Registration itself still succeeds even if the verification email cannot be delivered.
Error Responses
{
"error": "Bitte geben Sie ein Passwort mit mindestens 6 Zeichen ein."
}
{
"error": "Diese E-Mail-Adresse ist bereits registriert."
}
{
"error": "Ungültiger Einladungstoken."
}
{
"error": "Ein Fehler ist bei der Registrierung aufgetreten."
}
Next Steps
Login
Authenticate and obtain a JWT token.
User Profile
Retrieve the authenticated user’s profile.
⌘I