Introduction
REST API for integration partners to create and manage TapMedID medical profiles, records and bracelets.
The TapMedID Partner API lets your platform manage TapMedID medical profiles, their medical records, and the bracelets you assign to them — everything you can do from the TapMedID console, available programmatically from your own system.
Environments
| Environment | Base URL | Use it for |
|---|---|---|
| Sandbox | https://sandbox.tapmedid.com/api/v1 |
Building and testing your integration against disposable data. |
| Production | https://api.tapmedid.com/api/v1 |
Live profiles and real bracelets. |
Each environment has its own API keys. A sandbox key never touches production data, so you can test freely.
Authentication
Every request is authenticated with your API key sent as a Bearer token:
Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx
Sandbox keys are prefixed tmid_test_, production keys tmid_live_. Your TapMedID account
manager issues and revokes keys for you. Keep them secret — anyone with a key can read and
modify the profiles it manages.
Scoping & consent
A key only ever sees the profiles your organization manages; another partner's data is
never reachable and returns 404. Profiles you create through the API are, by that act,
consented for your management.
Rate limiting
Requests are limited to 120 per minute per key. Exceeding it returns 429 with a
Retry-After header.
Errors
Errors return a consistent JSON envelope with the HTTP status set accordingly:
{
"error": {
"type": "validation",
"message": "The given data was invalid.",
"fields": { "first_name": ["The first name field is required."] }
}
}
type is one of unauthenticated, forbidden, not_found, validation,
rate_limited, or server_error. fields is present only for validation errors.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Your TapMedID account manager issues your API keys. Sandbox keys are prefixed tmidtest, production keys tmidlive. Send the key as a Bearer token in the Authorization header.
Getting started
Endpoints to verify your integration is wired up correctly.
Ping / verify your key
requires authentication
Confirms your API key works and echoes which partner and environment it is bound to.
A good first call when setting up — if this returns 200, your key and base URL are correct.
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/ping" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/ping"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/ping';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/ping'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"ok": true,
"environment": "sandbox",
"partner": {
"id": 12,
"name": "Sunrise Senior Living"
},
"time": "2026-07-23T18:04:00+00:00"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Profiles
Medical profiles the partner manages. Every action is scoped to the partner's own profiles,
so ids outside your tenant return 404. Creating a profile through the API consents it for
your management.
List profiles
requires authentication
Returns your managed profiles, newest first, paginated.
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles?per_page=25" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles"
);
const params = {
"per_page": "25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'per_page' => '25',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles'
params = {
'per_page': '25',
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 42,
"full_name": "Rosa Diaz",
"blood_type": "O+",
"devices": []
}
],
"links": {
"first": "...",
"last": "...",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"per_page": 25,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a profile
requires authentication
Creates a managed medical profile. Optionally assign a bracelet in the same call by
including a device object with the serial and PIN of a bracelet allocated to you.
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"b\",
\"last_name\": \"n\",
\"middle_name\": \"g\",
\"gender\": \"unspecified\",
\"birth_date\": \"2026-07-23T17:26:31\",
\"blood_type\": \"O+\",
\"organ_donor\": false,
\"living_will\": \"z\",
\"religion\": \"m\",
\"ssn\": \"i\",
\"phone\": \"y\",
\"alternate_email\": \"justina.gaylord@example.org\",
\"address1\": \"i\",
\"address2\": \"k\",
\"city\": \"h\",
\"state\": \"w\",
\"zip\": \"aykcmyuwpwlvqwrs\",
\"country\": \"it\",
\"device\": {
\"serial\": \"architecto\",
\"pin\": \"architecto\",
\"name\": \"n\"
}
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"first_name": "b",
"last_name": "n",
"middle_name": "g",
"gender": "unspecified",
"birth_date": "2026-07-23T17:26:31",
"blood_type": "O+",
"organ_donor": false,
"living_will": "z",
"religion": "m",
"ssn": "i",
"phone": "y",
"alternate_email": "justina.gaylord@example.org",
"address1": "i",
"address2": "k",
"city": "h",
"state": "w",
"zip": "aykcmyuwpwlvqwrs",
"country": "it",
"device": {
"serial": "architecto",
"pin": "architecto",
"name": "n"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'first_name' => 'b',
'last_name' => 'n',
'middle_name' => 'g',
'gender' => 'unspecified',
'birth_date' => '2026-07-23T17:26:31',
'blood_type' => 'O+',
'organ_donor' => false,
'living_will' => 'z',
'religion' => 'm',
'ssn' => 'i',
'phone' => 'y',
'alternate_email' => 'justina.gaylord@example.org',
'address1' => 'i',
'address2' => 'k',
'city' => 'h',
'state' => 'w',
'zip' => 'aykcmyuwpwlvqwrs',
'country' => 'it',
'device' => ['serial' => 'architecto', 'pin' => 'architecto', 'name' => 'n'],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles'
payload = {
"first_name": "b",
"last_name": "n",
"middle_name": "g",
"gender": "unspecified",
"birth_date": "2026-07-23T17:26:31",
"blood_type": "O+",
"organ_donor": false,
"living_will": "z",
"religion": "m",
"ssn": "i",
"phone": "y",
"alternate_email": "justina.gaylord@example.org",
"address1": "i",
"address2": "k",
"city": "h",
"state": "w",
"zip": "aykcmyuwpwlvqwrs",
"country": "it",
"device": {
"serial": "architecto",
"pin": "architecto",
"name": "n"
}
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 42,
"full_name": "Rosa Diaz",
"blood_type": "O+",
"devices": [
{
"id": 7,
"serial": "TMID-0001",
"activated": true,
"emergency_url": "https://api.tapmedid.com/p/abc123"
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a profile
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 42,
"full_name": "Rosa Diaz",
"blood_type": "O+",
"devices": []
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a profile
requires authentication
Send any subset of the profile fields — all are optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"b\",
\"last_name\": \"n\",
\"middle_name\": \"g\",
\"gender\": \"unspecified\",
\"birth_date\": \"2026-07-23T17:26:31\",
\"blood_type\": \"B+\",
\"organ_donor\": false,
\"living_will\": \"z\",
\"religion\": \"m\",
\"ssn\": \"i\",
\"phone\": \"y\",
\"alternate_email\": \"justina.gaylord@example.org\",
\"address1\": \"i\",
\"address2\": \"k\",
\"city\": \"h\",
\"state\": \"w\",
\"zip\": \"aykcmyuwpwlvqwrs\",
\"country\": \"it\"
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"first_name": "b",
"last_name": "n",
"middle_name": "g",
"gender": "unspecified",
"birth_date": "2026-07-23T17:26:31",
"blood_type": "B+",
"organ_donor": false,
"living_will": "z",
"religion": "m",
"ssn": "i",
"phone": "y",
"alternate_email": "justina.gaylord@example.org",
"address1": "i",
"address2": "k",
"city": "h",
"state": "w",
"zip": "aykcmyuwpwlvqwrs",
"country": "it"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'first_name' => 'b',
'last_name' => 'n',
'middle_name' => 'g',
'gender' => 'unspecified',
'birth_date' => '2026-07-23T17:26:31',
'blood_type' => 'B+',
'organ_donor' => false,
'living_will' => 'z',
'religion' => 'm',
'ssn' => 'i',
'phone' => 'y',
'alternate_email' => 'justina.gaylord@example.org',
'address1' => 'i',
'address2' => 'k',
'city' => 'h',
'state' => 'w',
'zip' => 'aykcmyuwpwlvqwrs',
'country' => 'it',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto'
payload = {
"first_name": "b",
"last_name": "n",
"middle_name": "g",
"gender": "unspecified",
"birth_date": "2026-07-23T17:26:31",
"blood_type": "B+",
"organ_donor": false,
"living_will": "z",
"religion": "m",
"ssn": "i",
"phone": "y",
"alternate_email": "justina.gaylord@example.org",
"address1": "i",
"address2": "k",
"city": "h",
"state": "w",
"zip": "aykcmyuwpwlvqwrs",
"country": "it"
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 42,
"full_name": "Rosa Diaz",
"blood_type": "AB-",
"address": {
"city": "Madrid"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a profile
requires authentication
Soft-deletes the profile and returns any bracelets linked to it back to your stock so they can be re-issued. Staff can recover a deleted profile if needed.
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Bracelets
Bracelets linked to your profiles: list, assign (activate a bracelet allocated to you by serial + PIN), update (enable/disable, lost mode, name) and unassign (return to your stock). You can only activate bracelets that were allocated to your organization.
List a profile's bracelets
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/42/devices" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/42/devices"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/42/devices';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/42/devices'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"id": 7,
"serial": "TMID-0001",
"activated": true,
"enabled": true,
"is_lost": false,
"emergency_url": "https://api.tapmedid.com/p/abc123"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Assign a bracelet
requires authentication
Activates a bracelet (matched by serial + PIN) and links it to the profile. The bracelet must be one allocated to your organization and not already linked to another profile.
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/42/devices" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"serial\": \"TMID-0001\",
\"pin\": \"4821\",
\"name\": \"Room 12\"
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/42/devices"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"serial": "TMID-0001",
"pin": "4821",
"name": "Room 12"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/42/devices';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'serial' => 'TMID-0001',
'pin' => '4821',
'name' => 'Room 12',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/42/devices'
payload = {
"serial": "TMID-0001",
"pin": "4821",
"name": "Room 12"
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 7,
"serial": "TMID-0001",
"activated": true,
"enabled": true,
"emergency_url": "https://api.tapmedid.com/p/abc123"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a bracelet
requires authentication
Example request:
curl --request PATCH \
"https://api.tapmedid.com/api/v1/devices/7" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"enabled\": true,
\"view_medical_profile\": true,
\"name\": \"Room 12\",
\"is_lost\": false,
\"lost_message\": \"Please call the front desk.\"
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/devices/7"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"enabled": true,
"view_medical_profile": true,
"name": "Room 12",
"is_lost": false,
"lost_message": "Please call the front desk."
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/devices/7';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'enabled' => true,
'view_medical_profile' => true,
'name' => 'Room 12',
'is_lost' => false,
'lost_message' => 'Please call the front desk.',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/devices/7'
payload = {
"enabled": true,
"view_medical_profile": true,
"name": "Room 12",
"is_lost": false,
"lost_message": "Please call the front desk."
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 7,
"serial": "TMID-0001",
"enabled": true,
"is_lost": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unassign a bracelet
requires authentication
Deactivates the bracelet and returns it to your stock so it can be re-issued to another profile.
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/devices/7" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/devices/7"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/devices/7';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/devices/7'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (204):
Empty response
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Emergency view
The at-a-glance emergency view of a profile — exactly what a first responder sees on the public /p/{hash} page: only NON-private records, so the partner can surface the same critical info inside their own app without exposing anything the patient marked private.
Get a profile's emergency view
requires authentication
Returns the profile header plus its non-private allergies, conditions, medications, vaccinations and emergency contacts — safe to display to first responders.
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/42/emergency" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/42/emergency"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/42/emergency';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/42/emergency'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"profile": {
"id": 42,
"full_name": "Rosa Diaz",
"blood_type": "O+",
"organ_donor": true
},
"allergies": [
{
"name": "Penicillin",
"reaction": "Anaphylaxis"
}
],
"conditions": [],
"medications": [],
"vaccinations": [],
"emergency_contacts": [
{
"name": "Dr. House",
"mobile": "+34600111222",
"is_doctor": true
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Allergies
A profile's allergies and the reactions they cause. Setting is_private to true
keeps the allergy out of the public emergency view while still storing it on the record.
GET api/v1/profiles/{profile}/allergies
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/allergies" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add an allergy
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Penicillin\",
\"reaction\": \"Hives and swelling\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Penicillin",
"reaction": "Hives and swelling",
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Penicillin',
'reaction' => 'Hives and swelling',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies'
payload = {
"name": "Penicillin",
"reaction": "Hives and swelling",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"name": "Penicillin",
"reaction": "Hives and swelling",
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/allergies/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update an allergy
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Penicillin\",
\"reaction\": \"Hives and swelling\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Penicillin",
"reaction": "Hives and swelling",
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Penicillin',
'reaction' => 'Hives and swelling',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto'
payload = {
"name": "Penicillin",
"reaction": "Hives and swelling",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/allergies/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/allergies/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Conditions
Ongoing or past medical conditions and diagnoses for a profile. Setting is_private
to true keeps the condition out of the public emergency view.
GET api/v1/profiles/{profile}/conditions
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/conditions" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add a condition
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Type 2 diabetes\",
\"notes\": \"Diagnosed 2019, diet controlled\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Type 2 diabetes",
"notes": "Diagnosed 2019, diet controlled",
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Type 2 diabetes',
'notes' => 'Diagnosed 2019, diet controlled',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions'
payload = {
"name": "Type 2 diabetes",
"notes": "Diagnosed 2019, diet controlled",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"name": "Type 2 diabetes",
"notes": "Diagnosed 2019, diet controlled",
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/conditions/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a condition
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Type 2 diabetes\",
\"notes\": \"Diagnosed 2019, diet controlled\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Type 2 diabetes",
"notes": "Diagnosed 2019, diet controlled",
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Type 2 diabetes',
'notes' => 'Diagnosed 2019, diet controlled',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto'
payload = {
"name": "Type 2 diabetes",
"notes": "Diagnosed 2019, diet controlled",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/conditions/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/conditions/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Medications
Medications a profile takes, with dosage and whether they are taken as needed.
Setting is_private to true keeps the medication out of the public emergency view.
GET api/v1/profiles/{profile}/medications
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/medications" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medications"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add a medication
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/medications" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Enalapril\",
\"dosage\": \"10mg\",
\"year\": 2021,
\"as_needed\": false,
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medications"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Enalapril",
"dosage": "10mg",
"year": 2021,
"as_needed": false,
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Enalapril',
'dosage' => '10mg',
'year' => 2021,
'as_needed' => false,
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications'
payload = {
"name": "Enalapril",
"dosage": "10mg",
"year": 2021,
"as_needed": false,
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"name": "Enalapril",
"dosage": "10mg",
"as_needed": false,
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/medications/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a medication
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Enalapril\",
\"dosage\": \"10mg\",
\"year\": 2021,
\"as_needed\": false,
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Enalapril",
"dosage": "10mg",
"year": 2021,
"as_needed": false,
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Enalapril',
'dosage' => '10mg',
'year' => 2021,
'as_needed' => false,
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto'
payload = {
"name": "Enalapril",
"dosage": "10mg",
"year": 2021,
"as_needed": false,
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/medications/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medications/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Vaccinations
Vaccinations a profile has received, with the year and optional notes. Setting
is_private to true keeps the vaccination out of the public emergency view.
GET api/v1/profiles/{profile}/vaccinations
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add a vaccination
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Tetanus\",
\"year\": 2022,
\"notes\": \"Booster dose\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Tetanus",
"year": 2022,
"notes": "Booster dose",
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Tetanus',
'year' => 2022,
'notes' => 'Booster dose',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations'
payload = {
"name": "Tetanus",
"year": 2022,
"notes": "Booster dose",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"name": "Tetanus",
"year": 2022,
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/vaccinations/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a vaccination
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Tetanus\",
\"year\": 2022,
\"notes\": \"Booster dose\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Tetanus",
"year": 2022,
"notes": "Booster dose",
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Tetanus',
'year' => 2022,
'notes' => 'Booster dose',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto'
payload = {
"name": "Tetanus",
"year": 2022,
"notes": "Booster dose",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/vaccinations/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/vaccinations/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Emergency contacts
People to reach in an emergency — relatives, doctors, or attorneys — with phone,
mobile and email details and whether they should be notified. Setting is_private
to true keeps the contact out of the public emergency view.
GET api/v1/profiles/{profile}/emergency-contacts
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add an emergency contact
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Dr. House\",
\"relation\": \"Primary physician\",
\"is_doctor\": true,
\"speciality\": \"Cardiology\",
\"phone\": \"+34910111222\",
\"phone_ext\": \"204\",
\"mobile\": \"+34600111222\",
\"email\": \"doctor@example.com\",
\"is_attorney\": false,
\"notify\": true,
\"lang\": \"es\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Dr. House",
"relation": "Primary physician",
"is_doctor": true,
"speciality": "Cardiology",
"phone": "+34910111222",
"phone_ext": "204",
"mobile": "+34600111222",
"email": "doctor@example.com",
"is_attorney": false,
"notify": true,
"lang": "es",
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Dr. House',
'relation' => 'Primary physician',
'is_doctor' => true,
'speciality' => 'Cardiology',
'phone' => '+34910111222',
'phone_ext' => '204',
'mobile' => '+34600111222',
'email' => 'doctor@example.com',
'is_attorney' => false,
'notify' => true,
'lang' => 'es',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts'
payload = {
"name": "Dr. House",
"relation": "Primary physician",
"is_doctor": true,
"speciality": "Cardiology",
"phone": "+34910111222",
"phone_ext": "204",
"mobile": "+34600111222",
"email": "doctor@example.com",
"is_attorney": false,
"notify": true,
"lang": "es",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"name": "Dr. House",
"is_doctor": true,
"mobile": "+34600111222",
"email": "doctor@example.com",
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/emergency-contacts/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update an emergency contact
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Dr. House\",
\"relation\": \"Primary physician\",
\"is_doctor\": true,
\"speciality\": \"Cardiology\",
\"phone\": \"+34910111222\",
\"phone_ext\": \"204\",
\"mobile\": \"+34600111222\",
\"email\": \"doctor@example.com\",
\"is_attorney\": false,
\"notify\": true,
\"lang\": \"es\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Dr. House",
"relation": "Primary physician",
"is_doctor": true,
"speciality": "Cardiology",
"phone": "+34910111222",
"phone_ext": "204",
"mobile": "+34600111222",
"email": "doctor@example.com",
"is_attorney": false,
"notify": true,
"lang": "es",
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => 'Dr. House',
'relation' => 'Primary physician',
'is_doctor' => true,
'speciality' => 'Cardiology',
'phone' => '+34910111222',
'phone_ext' => '204',
'mobile' => '+34600111222',
'email' => 'doctor@example.com',
'is_attorney' => false,
'notify' => true,
'lang' => 'es',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto'
payload = {
"name": "Dr. House",
"relation": "Primary physician",
"is_doctor": true,
"speciality": "Cardiology",
"phone": "+34910111222",
"phone_ext": "204",
"mobile": "+34600111222",
"email": "doctor@example.com",
"is_attorney": false,
"notify": true,
"lang": "es",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/emergency-contacts/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/emergency-contacts/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Insurances
Health insurance policies held by a profile, including company, policy numbers and
validity dates. Setting is_private to true keeps the policy out of the public
emergency view.
GET api/v1/profiles/{profile}/insurances
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/insurances" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add an insurance policy
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"company\": \"Aetna\",
\"policy_name\": \"PPO Gold\",
\"policy_number\": \"A-12345\",
\"medicare\": \"1EG4-TE5-MK73\",
\"medicaid\": \"MD-998877\",
\"hmo\": \"HMO-4521\",
\"agent_name\": \"Sarah Connor\",
\"valid_from\": \"2025-01-01\",
\"expires_at\": \"2025-12-31\",
\"description\": \"Covers dental and vision\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"company": "Aetna",
"policy_name": "PPO Gold",
"policy_number": "A-12345",
"medicare": "1EG4-TE5-MK73",
"medicaid": "MD-998877",
"hmo": "HMO-4521",
"agent_name": "Sarah Connor",
"valid_from": "2025-01-01",
"expires_at": "2025-12-31",
"description": "Covers dental and vision",
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'company' => 'Aetna',
'policy_name' => 'PPO Gold',
'policy_number' => 'A-12345',
'medicare' => '1EG4-TE5-MK73',
'medicaid' => 'MD-998877',
'hmo' => 'HMO-4521',
'agent_name' => 'Sarah Connor',
'valid_from' => '2025-01-01',
'expires_at' => '2025-12-31',
'description' => 'Covers dental and vision',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances'
payload = {
"company": "Aetna",
"policy_name": "PPO Gold",
"policy_number": "A-12345",
"medicare": "1EG4-TE5-MK73",
"medicaid": "MD-998877",
"hmo": "HMO-4521",
"agent_name": "Sarah Connor",
"valid_from": "2025-01-01",
"expires_at": "2025-12-31",
"description": "Covers dental and vision",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"company": "Aetna",
"policy_number": "A-12345",
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/insurances/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update an insurance policy
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"company\": \"Aetna\",
\"policy_name\": \"PPO Gold\",
\"policy_number\": \"A-12345\",
\"medicare\": \"1EG4-TE5-MK73\",
\"medicaid\": \"MD-998877\",
\"hmo\": \"HMO-4521\",
\"agent_name\": \"Sarah Connor\",
\"valid_from\": \"2025-01-01\",
\"expires_at\": \"2025-12-31\",
\"description\": \"Covers dental and vision\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"company": "Aetna",
"policy_name": "PPO Gold",
"policy_number": "A-12345",
"medicare": "1EG4-TE5-MK73",
"medicaid": "MD-998877",
"hmo": "HMO-4521",
"agent_name": "Sarah Connor",
"valid_from": "2025-01-01",
"expires_at": "2025-12-31",
"description": "Covers dental and vision",
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'company' => 'Aetna',
'policy_name' => 'PPO Gold',
'policy_number' => 'A-12345',
'medicare' => '1EG4-TE5-MK73',
'medicaid' => 'MD-998877',
'hmo' => 'HMO-4521',
'agent_name' => 'Sarah Connor',
'valid_from' => '2025-01-01',
'expires_at' => '2025-12-31',
'description' => 'Covers dental and vision',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto'
payload = {
"company": "Aetna",
"policy_name": "PPO Gold",
"policy_number": "A-12345",
"medicare": "1EG4-TE5-MK73",
"medicaid": "MD-998877",
"hmo": "HMO-4521",
"agent_name": "Sarah Connor",
"valid_from": "2025-01-01",
"expires_at": "2025-12-31",
"description": "Covers dental and vision",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/insurances/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/insurances/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Medical history
Medical history entries. One table backs several record kinds via type:
general | test | hospitalization | implanted_device | additional_info.
GET supports ?type= to filter (e.g. only implanted devices). Setting is_private
to true keeps the entry out of the public emergency view.
List medical history entries
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/medical-history?type=implanted_device" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history"
);
const params = {
"type": "implanted_device",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'type' => 'implanted_device',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history'
params = {
'type': 'implanted_device',
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add a medical history entry
requires authentication
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type\": \"hospitalization\",
\"name\": \"Appendectomy\",
\"description\": \"Laparoscopic appendix removal\",
\"test_date\": \"2024-03-15\",
\"hospital_from\": \"2024-03-14\",
\"hospital_to\": \"2024-03-16\",
\"hospital_reason\": \"Acute appendicitis\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "hospitalization",
"name": "Appendectomy",
"description": "Laparoscopic appendix removal",
"test_date": "2024-03-15",
"hospital_from": "2024-03-14",
"hospital_to": "2024-03-16",
"hospital_reason": "Acute appendicitis",
"is_private": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'type' => 'hospitalization',
'name' => 'Appendectomy',
'description' => 'Laparoscopic appendix removal',
'test_date' => '2024-03-15',
'hospital_from' => '2024-03-14',
'hospital_to' => '2024-03-16',
'hospital_reason' => 'Acute appendicitis',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history'
payload = {
"type": "hospitalization",
"name": "Appendectomy",
"description": "Laparoscopic appendix removal",
"test_date": "2024-03-15",
"hospital_from": "2024-03-14",
"hospital_to": "2024-03-16",
"hospital_reason": "Acute appendicitis",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (201):
{
"data": {
"id": 1,
"type": "hospitalization",
"name": "Appendectomy",
"is_private": false
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/medical-history/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a medical history entry
requires authentication
Send any subset of the create fields — all optional here.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type\": \"hospitalization\",
\"name\": \"Appendectomy\",
\"description\": \"Laparoscopic appendix removal\",
\"test_date\": \"2024-03-15\",
\"hospital_from\": \"2024-03-14\",
\"hospital_to\": \"2024-03-16\",
\"hospital_reason\": \"Acute appendicitis\",
\"is_private\": false
}"
const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "hospitalization",
"name": "Appendectomy",
"description": "Laparoscopic appendix removal",
"test_date": "2024-03-15",
"hospital_from": "2024-03-14",
"hospital_to": "2024-03-16",
"hospital_reason": "Acute appendicitis",
"is_private": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'type' => 'hospitalization',
'name' => 'Appendectomy',
'description' => 'Laparoscopic appendix removal',
'test_date' => '2024-03-15',
'hospital_from' => '2024-03-14',
'hospital_to' => '2024-03-16',
'hospital_reason' => 'Acute appendicitis',
'is_private' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto'
payload = {
"type": "hospitalization",
"name": "Appendectomy",
"description": "Laparoscopic appendix removal",
"test_date": "2024-03-15",
"hospital_from": "2024-03-14",
"hospital_to": "2024-03-16",
"hospital_reason": "Acute appendicitis",
"is_private": false
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/medical-history/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/medical-history/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Documents
Vault documents. Files are uploaded as multipart (file) and stored on the PRIVATE disk;
they are never publicly served — the API exposes a metadata record plus a signed download
link generated on read. Documents default to private, and setting is_private to true
keeps a document out of the public emergency view.
GET api/v1/profiles/{profile}/documents
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/documents" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/documents"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Upload a document
requires authentication
Send as multipart/form-data. The file is stored on the private disk and a signed
download URL is returned in the response.
Example request:
curl --request POST \
"https://api.tapmedid.com/api/v1/profiles/architecto/documents" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "title=Insurance card"\
--form "category=Insurance"\
--form "is_private=1"\
--form "file=@/private/var/folders/1d/5c3snk2j0qs5b5h3yy27r4w40000gn/T/phplfb6jelehn4sfykW81q" const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/documents"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('title', 'Insurance card');
body.append('category', 'Insurance');
body.append('is_private', '1');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'title',
'contents' => 'Insurance card'
],
[
'name' => 'category',
'contents' => 'Insurance'
],
[
'name' => 'is_private',
'contents' => '1'
],
[
'name' => 'file',
'contents' => fopen('/private/var/folders/1d/5c3snk2j0qs5b5h3yy27r4w40000gn/T/phplfb6jelehn4sfykW81q', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents'
files = {
'title': (None, 'Insurance card'),
'category': (None, 'Insurance'),
'is_private': (None, '1'),
'file': open('/private/var/folders/1d/5c3snk2j0qs5b5h3yy27r4w40000gn/T/phplfb6jelehn4sfykW81q', 'rb')}
payload = {
"title": "Insurance card",
"category": "Insurance",
"is_private": true
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()Example response (201):
{
"data": {
"id": 1,
"title": "Insurance card",
"category": "Insurance",
"is_private": true,
"download_url": "https://example.com/files/documents/1"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/profiles/{profile}/documents/{record}
requires authentication
Example request:
curl --request GET \
--get "https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a document
requires authentication
Send as multipart/form-data. Send any subset of the fields — all optional here.
Include file only to replace the stored file.
Example request:
curl --request PUT \
"https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "title=Insurance card"\
--form "category=Insurance"\
--form "is_private=1"\
--form "file=@/private/var/folders/1d/5c3snk2j0qs5b5h3yy27r4w40000gn/T/phplaht8s2duk9ubEcuYfb" const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('title', 'Insurance card');
body.append('category', 'Insurance');
body.append('is_private', '1');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "PUT",
headers,
body,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'title',
'contents' => 'Insurance card'
],
[
'name' => 'category',
'contents' => 'Insurance'
],
[
'name' => 'is_private',
'contents' => '1'
],
[
'name' => 'file',
'contents' => fopen('/private/var/folders/1d/5c3snk2j0qs5b5h3yy27r4w40000gn/T/phplaht8s2duk9ubEcuYfb', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto'
files = {
'title': (None, 'Insurance card'),
'category': (None, 'Insurance'),
'is_private': (None, '1'),
'file': open('/private/var/folders/1d/5c3snk2j0qs5b5h3yy27r4w40000gn/T/phplaht8s2duk9ubEcuYfb', 'rb')}
payload = {
"title": "Insurance card",
"category": "Insurance",
"is_private": true
}
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, files=files)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/profiles/{profile}/documents/{record}
requires authentication
Example request:
curl --request DELETE \
"https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto" \
--header "Authorization: Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto"
);
const headers = {
"Authorization": "Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://api.tapmedid.com/api/v1/profiles/architecto/documents/architecto'
headers = {
'Authorization': 'Bearer tmid_live_xxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.