curl --request POST \
--url https://scribe-api.telepatia.ai/v1/patients \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idCountry": "COLOMBIA",
"idType": "CC",
"idValue": "1024567890",
"internalCode": "EMR-12345",
"name": "John Doe"
}
'import requests
url = "https://scribe-api.telepatia.ai/v1/patients"
payload = {
"idCountry": "COLOMBIA",
"idType": "CC",
"idValue": "1024567890",
"internalCode": "EMR-12345",
"name": "John Doe"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
idCountry: 'COLOMBIA',
idType: 'CC',
idValue: '1024567890',
internalCode: 'EMR-12345',
name: 'John Doe'
})
};
fetch('https://scribe-api.telepatia.ai/v1/patients', 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://scribe-api.telepatia.ai/v1/patients",
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([
'idCountry' => 'COLOMBIA',
'idType' => 'CC',
'idValue' => '1024567890',
'internalCode' => 'EMR-12345',
'name' => 'John Doe'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://scribe-api.telepatia.ai/v1/patients"
payload := strings.NewReader("{\n \"idCountry\": \"COLOMBIA\",\n \"idType\": \"CC\",\n \"idValue\": \"1024567890\",\n \"internalCode\": \"EMR-12345\",\n \"name\": \"John Doe\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://scribe-api.telepatia.ai/v1/patients")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idCountry\": \"COLOMBIA\",\n \"idType\": \"CC\",\n \"idValue\": \"1024567890\",\n \"internalCode\": \"EMR-12345\",\n \"name\": \"John Doe\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe-api.telepatia.ai/v1/patients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"idCountry\": \"COLOMBIA\",\n \"idType\": \"CC\",\n \"idValue\": \"1024567890\",\n \"internalCode\": \"EMR-12345\",\n \"name\": \"John Doe\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2026-07-01T12:00:00.000Z",
"id": "sp_a1b2c3d4e5f6g7h8",
"idCountry": "COLOMBIA",
"idType": "CC",
"idValue": "1024567890",
"internalCode": "EMR-12345",
"name": "John Doe"
}Create a patient
Create a patient from the same identity fields used by set-consultation-context. Returns the patient with its stable public id.
curl --request POST \
--url https://scribe-api.telepatia.ai/v1/patients \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idCountry": "COLOMBIA",
"idType": "CC",
"idValue": "1024567890",
"internalCode": "EMR-12345",
"name": "John Doe"
}
'import requests
url = "https://scribe-api.telepatia.ai/v1/patients"
payload = {
"idCountry": "COLOMBIA",
"idType": "CC",
"idValue": "1024567890",
"internalCode": "EMR-12345",
"name": "John Doe"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
idCountry: 'COLOMBIA',
idType: 'CC',
idValue: '1024567890',
internalCode: 'EMR-12345',
name: 'John Doe'
})
};
fetch('https://scribe-api.telepatia.ai/v1/patients', 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://scribe-api.telepatia.ai/v1/patients",
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([
'idCountry' => 'COLOMBIA',
'idType' => 'CC',
'idValue' => '1024567890',
'internalCode' => 'EMR-12345',
'name' => 'John Doe'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://scribe-api.telepatia.ai/v1/patients"
payload := strings.NewReader("{\n \"idCountry\": \"COLOMBIA\",\n \"idType\": \"CC\",\n \"idValue\": \"1024567890\",\n \"internalCode\": \"EMR-12345\",\n \"name\": \"John Doe\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://scribe-api.telepatia.ai/v1/patients")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idCountry\": \"COLOMBIA\",\n \"idType\": \"CC\",\n \"idValue\": \"1024567890\",\n \"internalCode\": \"EMR-12345\",\n \"name\": \"John Doe\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe-api.telepatia.ai/v1/patients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"idCountry\": \"COLOMBIA\",\n \"idType\": \"CC\",\n \"idValue\": \"1024567890\",\n \"internalCode\": \"EMR-12345\",\n \"name\": \"John Doe\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2026-07-01T12:00:00.000Z",
"id": "sp_a1b2c3d4e5f6g7h8",
"idCountry": "COLOMBIA",
"idType": "CC",
"idValue": "1024567890",
"internalCode": "EMR-12345",
"name": "John Doe"
}Authorizations
API key passed as a Bearer token
Body
Request body for creating a patient.
Mirrors the identity fields of set-consultation-context.
1 - 500"John Doe"
ISO 3166-1 alpha-2 country codes. Mirrors tanjiro's CountryCodes enum.
AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CX, CC, CO, KM, CK, CR, CI, HR, CU, CW, CY, CZ, CD, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IQ, IE, IR, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, XK, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, KP, MP, NO, OM, PK, PW, PA, PG, PY, CN, PE, PH, PN, PL, PT, PR, QA, CG, GM, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, KR, SS, ES, LK, PS, SD, SR, SJ, SE, CH, SY, TW, TJ, TH, MK, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, TZ, UM, US, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW "CO"
Supported patient identification document types.
CC, TI, CE, RC, PASSPORT, RG, CPF, OTHER_DOC "CC"
1 - 50"1024567890"
Caller-provided internal code, unique within your institution.
1 - 128"EMR-12345"
Response
Successful Response
A single patient. id is the stable public id (sp_...).
Stable public identifier.
"sp_a1b2c3d4e5f6g7h8"
"John Doe"
ISO-8601 timestamp when the patient was created.
"COLOMBIA"
"CC"
"1024567890"
Caller-provided internal code for your institution (null if none).
"EMR-12345"