Introduction
The Wildlife Rehabilitation MD (WRMD) API allows you to programatically create and manage your patient resources and related data through a JSON:API.
This documentation aims to provide all the information you need to work with the WRMD API.
Base URL
https://www.wrmd.org/
Authenticating requests
To authenticate requests, include an Authorization
header with the value "Bearer {YOUR_AUTH_KEY}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
As a Super Admin you can generate API tokens by visiting your account settings and clicking WRMD API.
Common Names
Common names refer to the colloquial name of a taxon or species. It is the name known to the general public and is based on any language other than that of zoological nomenclature. There maybe multiple common names for a given taxon. A common name has a taxon and it will be automatically included in the api response.
List Common Names
requires authentication
Fetch zero to many common names.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/common-names',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'page[number]'=> '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/common-names"
);
const params = {
"page[number]": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/common-names'
params = {
'page[number]': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/common-names?page[number]=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 2485,
"perPage": 15,
"to": 15,
"total": 37275
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://www.wrmd.org/api/v3/common-names?include=taxon&page%5Bnumber%5D=1&page%5Bsize%5D=15",
"last": "https://www.wrmd.org/api/v3/common-names?include=taxon&page%5Bnumber%5D=2485&page%5Bsize%5D=15",
"next": "https://www.wrmd.org/api/v3/common-names?include=taxon&page%5Bnumber%5D=2&page%5Bsize%5D=15"
},
"data": [
{
"type": "common-names",
"id": 33770,
"attributes": {
"commonName": "House Finch",
"subSpecies": null,
"alphaCode": null,
"language": "en",
"createdAt": "2016-01-01T06:39:40.000000Z",
"updatedAt": "2016-01-01T06:39:40.000000Z"
},
"relationships": {
"taxon": {
"links": {
"related": "https://www.wrmd.org/api/v3/common-names/33770/taxon"
},
"data": {
"type": "taxa",
"id": "2946"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/common-names/33770"
}
},
// ...
],
"included": [
{
"type": "taxa",
"id": "2946",
"attributes": {
"class": "Aves",
"order": "Passeriformes",
"family": "Fringillidae",
"genus": "Haemorhous",
"species": "mexicanus",
"alphaCode": "HOFI",
"createdAt": "2016-01-01T06:39:40.000000Z",
"updatedAt": "2018-01-26T17:38:46.000000Z"
},
"relationships": {
"commonNames": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/2946/common-names"
}
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/2946/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/taxa/2946"
}
}
]
}
Received response:
Request failed with error:
Get Common Name
requires authentication
Fetch zero to one common name by id.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/common-names/17',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/common-names/17"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/common-names/17'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/common-names/17" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "http://wrmd.test/api/v3/common-names/33770"
},
"data": {
"type": "common-names",
"id": "33770",
"attributes": {
"commonName": "House Finch",
"subSpecies": null,
"alphaCode": null,
"language": "en",
"createdAt": "2015-05-05T02:54:12.000000Z",
"updatedAt": "2017-12-26T04:02:07.000000Z"
},
"relationships": {
"taxon": {
"links": {
"related": "http://wrmd.test/api/v3/common-names/33770/taxon"
},
"data": {
"type": "taxa",
"id": "2946"
}
}
},
"links": {
"self": "http://wrmd.test/api/v3/common-names/33770"
}
},
"included": [
{
"type": "taxa",
"id": "2946",
"attributes": {
"class": "Aves",
"order": "Passeriformes",
"family": "Fringillidae",
"genus": "Haemorhous",
"species": "mexicanus",
"alphaCode": "HOFI",
"createdAt": "2016-01-01T06:39:41.000000Z",
"updatedAt": "2019-12-19T17:00:41.000000Z"
},
"relationships": {
"commonNames": {
"links": {
"related": "http://wrmd.test/api/v3/taxa/2946/common-names"
}
},
"patients": {
"links": {
"related": "http://wrmd.test/api/v3/taxa/2946/patients"
}
}
},
"links": {
"self": "http://wrmd.test/api/v3/taxa/2946"
}
}
]
}
Received response:
Request failed with error:
Donations
Donations refer to the charitable gifts given by a person to your organization.
List Donations
requires authentication
Fetch zero to many donations.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/donations',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'page[number]'=> '1',
'sort'=> 'method',
'filter[donatedAt]'=> '2021-08-25',
'include'=> 'donor',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/donations"
);
const params = {
"page[number]": "1",
"sort": "method",
"filter[donatedAt]": "2021-08-25",
"include": "donor",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/donations'
params = {
'page[number]': '1',
'sort': 'method',
'filter[donatedAt]': '2021-08-25',
'include': 'donor',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/donations?page[number]=1&sort=method&filter[donatedAt]=2021-08-25&include=donor" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1,
"perPage": 1,
"to": 1,
"total": 1
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://www.wrmd.org/api/v3/donations?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"last": "https://www.wrmd.org/api/v3/donations?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://www.wrmd.org/api/v3/donations?page%5Bnumber%5D=2&page%5Bsize%5D=1"
},
"data": [
{
"type": "donations",
"id": "48",
"attributes": {
"donatedAt": "2020-01-03T00:00:00.000000Z",
"value": 20,
"method": "Cash",
"comments": "",
"createdAt": "2020-01-04T07:47:39.000000Z",
"updatedAt": "2020-02-19T05:34:59.000000Z"
},
"relationships": {
"donor": {
"links": {
"related": "https://www.wrmd.org/api/v3/donations/48/donor",
"self": "https://www.wrmd.org/api/v3/donations/48/relationships/donor"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/donations/48"
}
},
// ...
]
}
Received response:
Request failed with error:
Get Donations
requires authentication
Fetch zero to one donation by id.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/donations/4',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'include'=> 'donor',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/donations/4"
);
const params = {
"include": "donor",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/donations/4'
params = {
'include': 'donor',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/donations/4?include=donor" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://www.wrmd.org/api/v3/donations/64289"
},
"data": {
"type": "donations",
"id": "64289",
"attributes": {
"donatedAt": "2019-04-06T00:00:00.000000Z",
"value": 20000,
"method": "Bank Transfer",
"comments": null,
"createdAt": "2019-04-06T21:45:10.000000Z",
"updatedAt": "2019-04-06T21:45:10.000000Z"
},
"relationships": {
"donor": {
"links": {
"related": "https://www.wrmd.org/api/v3/donations/64289/donor",
"self": "https://www.wrmd.org/api/v3/donations/64289/relationships/donor"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/donations/64289"
}
}
}
Received response:
Request failed with error:
Patients
Patients refer to the animals admitted to your organization for rehabilitation.
List Patients
requires authentication
Fetch zero to many patients.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/patients',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'page[number]'=> '1',
'sort'=> 'admittedAt',
'filter[disposition]'=> 'Released',
'include'=> 'taxon',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/patients"
);
const params = {
"page[number]": "1",
"sort": "admittedAt",
"filter[disposition]": "Released",
"include": "taxon",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/patients'
params = {
'page[number]': '1',
'sort': 'admittedAt',
'filter[disposition]': 'Released',
'include': 'taxon',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/patients?page[number]=1&sort=admittedAt&filter[disposition]=Released&include=taxon" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1,
"perPage": 1,
"to": 1,
"total": 1
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://www.wrmd.org/api/v3/patients?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"last": "https://www.wrmd.org/api/v3/patients?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://www.wrmd.org/api/v3/patients?page%5Bnumber%5D=2&page%5Bsize%5D=1"
},
"data": [
{
"type": "patients",
"id": "1548778",
"attributes": {
"caseNumber": "21-1",
"isFrozen": false,
"commonName": "Raccoon",
"admittedAt": "2020-12-15T20:50:00.000000Z",
"transportedBy": null,
"admittedBy": "Devin",
"foundAt": "2020-12-15T00:00:00.000000Z",
"addressFound": "test",
"cityFound": "x",
"subdivisionFound": "AL",
"coordinatesFound": {
"latitude": 30.3674198,
"longitude": -89.0928155
},
"reasonsForAdmission": "Hit by car",
"careByRescuer": null,
"notesAboutRescue": null,
"diagnosis": "test",
"band": null,
"microchipNumber": null,
"referenceNumber": null,
"name": null,
"keywords": "stuff",
"disposition": "Died +24hr",
"transferType": null,
"releaseType": null,
"dispositionedAt": "2020-01-01T00:00:00.000000Z",
"dispositionLocation": null,
"dispositionSubdivision": "BZ",
"dispositionCoordinates": {
"latitude": 30.3674198,
"longitude": -89.0928155
},
"reasonForDisposition": null,
"dispositionedBy": null,
"carcassSaved": false,
"criminalActivity": false,
"createdAt": "2020-12-15T19:50:54.000000Z",
"updatedAt": "2021-03-18T20:47:37.000000Z"
},
"relationships": {
"rescuer": {
"links": {
"related": "https://www.wrmd.org/api/v3/patients/1548778/rescuer"
}
},
"taxon": {
"links": {
"related": "https://www.wrmd.org/api/v3/patients/1548778/taxon"
},
"data": {
"type": "taxa",
"id": "585"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/patients/1548778"
}
},
//...
],
"included": [
{
"type": "taxa",
"id": "585",
"attributes": {
"class": "Mammalia",
"order": "Carnivora",
"family": "Procyonidae",
"genus": "Procyon",
"species": "lotor",
"alphaCode": null,
"createdAt": "2016-01-01T06:39:40.000000Z",
"updatedAt": "2018-01-26T17:38:49.000000Z"
},
"relationships": {
"commonNames": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/585/common-names"
}
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/585/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/taxa/585"
}
}
]
}
Received response:
Request failed with error:
Get a patient
requires authentication
Fetch zero to one patient by id.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/patients/8',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'include'=> 'taxon',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/patients/8"
);
const params = {
"include": "taxon",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/patients/8'
params = {
'include': 'taxon',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/patients/8?include=taxon" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://www.wrmd.org/api/v3/patients/1548778"
},
"data": {
"type": "patients",
"id": "1548778",
"attributes": {
"caseNumber": "20-4",
"isFrozen": false,
"commonName": "Raccoon",
"admittedAt": "2020-12-15T20:50:00.000000Z",
"transportedBy": null,
"admittedBy": "Devin",
"foundAt": "2020-12-15T00:00:00.000000Z",
"addressFound": "test",
"cityFound": "x",
"subdivisionFound": "AL",
"coordinatesFound": {
"latitude": 30.3674198,
"longitude": -89.0928155
},
"reasonsForAdmission": "x",
"careByRescuer": null,
"notesAboutRescue": null,
"diagnosis": "test",
"band": null,
"microchipNumber": null,
"referenceNumber": null,
"name": null,
"keywords": "stuff",
"disposition": "Died +24hr",
"transferType": null,
"releaseType": null,
"dispositionedAt": "2020-01-01T00:00:00.000000Z",
"dispositionLocation": null,
"dispositionSubdivision": "BZ",
"dispositionCoordinates": {
"latitude": 30.3674198,
"longitude": -89.0928155
},
"reasonForDisposition": null,
"dispositionedBy": null,
"carcassSaved": false,
"criminalActivity": false,
"createdAt": "2020-12-15T19:50:54.000000Z",
"updatedAt": "2021-03-18T20:47:37.000000Z"
},
"relationships": {
"rescuer": {
"links": {
"related": "https://www.wrmd.org/api/v3/patients/1548778/rescuer"
}
},
"taxon": {
"links": {
"related": "https://www.wrmd.org/api/v3/patients/1548778/taxon"
},
"data": {
"type": "taxa",
"id": "585"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/patients/1548778"
}
},
"included": [
{
"type": "taxa",
"id": "585",
"attributes": {
"class": "Mammalia",
"order": "Carnivora",
"family": "Procyonidae",
"genus": "Procyon",
"species": "lotor",
"alphaCode": null,
"createdAt": "2016-01-01T06:39:40.000000Z",
"updatedAt": "2018-01-26T17:38:49.000000Z"
},
"relationships": {
"commonNames": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/585/common-names"
}
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/585/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/taxa/585"
}
}
]
}
Received response:
Request failed with error:
People
People refer to all the human beings who have an affiliation to your account. Those people might be a rescuer, donor, volunteer or a member. In the interest of privacy and security, none of the details of any person in WRMD is required.
List People
requires authentication
Fetch zero to many people.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/people',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'page[number]'=> '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/people"
);
const params = {
"page[number]": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/people'
params = {
'page[number]': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/people?page[number]=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1,
"perPage": 1,
"to": 1,
"total": 1
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://www.wrmd.org/api/v3/people?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"last": "https://www.wrmd.org/api/v3/people?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://www.wrmd.org/api/v3/people?page%5Bnumber%5D=2&page%5Bsize%5D=1"
},
"data": [
{
"type": "people",
"id": "1",
"attributes": {
"organization": null,
"firstName": "Jim",
"lastName": "Smith",
"phone": null,
"altPhone": null,
"email": null,
"country": null,
"subdivision": null,
"city": null,
"address": null,
"postalCode": null,
"notes": null,
"noSolicitations": false,
"isVolunteer": false,
"isMember": false,
"createdAt": "2021-12-24T05:38:41.000000Z",
"updatedAt": "2021-12-24T05:38:41.000000Z"
},
"relationships": {
"donations": {
"links": {
"related": "https://www.wrmd.org/api/v3/people/1/donations"
}
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/people/1/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/people/1"
}
},
// ...
]
}
Received response:
Request failed with error:
Get a person
requires authentication
Fetch zero to one person by id.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/people/3',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/people/3"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/people/3'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/people/3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://www.wrmd.org/api/v3/people/1"
},
"data": {
"type": "people",
"id": "1",
"attributes": {
"organization": null,
"firstName": "Jim",
"lastName": "Smith",
"phone": null,
"altPhone": null,
"email": null,
"country": null,
"subdivision": null,
"city": null,
"address": null,
"postalCode": null,
"notes": null,
"noSolicitations": false,
"isVolunteer": false,
"isMember": false,
"createdAt": "2021-12-24T05:38:41.000000Z",
"updatedAt": "2021-12-24T05:38:41.000000Z"
},
"relationships": {
"donations": {
"links": {
"related": "https://www.wrmd.org/api/v3/people/1/donations"
}
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/people/1/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/people/1"
}
}
}
Received response:
Request failed with error:
Reports
Reports refers to all the same reports available within WRMD (http://www.wrmd.org/reports). Each report has a different set of filters that it recognizes.
List Reports
requires authentication
Fetch a list of the available reports.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/reports',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/reports"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/reports'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/reports" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"data": [
{
"type": "reports",
"id": "us",
"attributes": {
"title": "USFWS Wildlife Rehabilitation Annual Report",
"titleSlug": "usfws-wildlife-rehabilitation-annual-report",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/us"
}
},
{
"type": "reports",
"id": "us-ca",
"attributes": {
"title": "California Wildlife Rehabilitation Annual Report",
"titleSlug": "california-wildlife-rehabilitation-annual-report",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/us-ca"
}
},
{
"type": "reports",
"id": "daily-summary",
"attributes": {
"title": "Daily Summary Report",
"titleSlug": "daily-summary-report",
"explanation": "The Daily Summary Report was designed to give you a snapshot of what happened on a given day. It shows what was admitted, dispositioned and who was in care on that day.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/daily-summary"
}
},
{
"type": "reports",
"id": "admissions-per-year-by-species",
"attributes": {
"title": "Admissions Per Year by Species",
"titleSlug": "admissions-per-year-by-species",
"explanation": "The Admissions per Year by Species report gives you a 5 year comparison of the total species that came into care for a given year.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/admissions-per-year-by-species"
}
},
{
"type": "reports",
"id": "admissions-by-location-found",
"attributes": {
"title": "Admissions by Location Found",
"titleSlug": "admissions-by-location-found",
"explanation": "The Admissions by Location Found report give you 3 filters to view the total number of species that came into care by the city, county or state they were found in.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/admissions-by-location-found"
}
},
{
"type": "reports",
"id": "dates-of-first-babies",
"attributes": {
"title": "Dates of First Babies by Year",
"titleSlug": "dates-of-first-babies-by-year",
"explanation": "Dates of First Babies by Year report gives you a 5 year comparison of the date the first \"baby\" of the year came into care. Baby refers to any patient that is not Adult, Sub-adult, Juvenile or that has Years in the Initial Exam Age Unit. If the Age is left blank it will not be used.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/dates-of-first-babies"
}
},
{
"type": "reports",
"id": "total-dispositions-by-species",
"attributes": {
"title": "Dispositions by Species",
"titleSlug": "dispositions-by-species",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/total-dispositions-by-species"
}
},
{
"type": "reports",
"id": "release-types-by-species",
"attributes": {
"title": "Release Types by Species",
"titleSlug": "release-types-by-species",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/release-types-by-species"
}
},
{
"type": "reports",
"id": "transfer-types-by-species",
"attributes": {
"title": "Transfer Types by Species",
"titleSlug": "transfer-types-by-species",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/transfer-types-by-species"
}
},
{
"type": "reports",
"id": "pending-patients-by-location",
"attributes": {
"title": "Pending Cases by Location",
"titleSlug": "pending-cases-by-location",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/pending-patients-by-location"
}
},
{
"type": "reports",
"id": "homecare-hours-by-caregiver",
"attributes": {
"title": "Homecare Hours by Caregiver",
"titleSlug": "homecare-hours-by-caregiver",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/homecare-hours-by-caregiver"
}
},
{
"type": "reports",
"id": "patients-sent-to-homecare",
"attributes": {
"title": "Patients Sent to Homecare",
"titleSlug": "patients-sent-to-homecare",
"explanation": "",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/patients-sent-to-homecare"
}
},
{
"type": "reports",
"id": "people",
"attributes": {
"title": "All People",
"titleSlug": "all-people",
"explanation": "This report lists all people created in your account within the date range specified; regardless of their affiliation to you.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/people"
}
},
{
"type": "reports",
"id": "rescuers",
"attributes": {
"title": "Rescuers",
"titleSlug": "rescuers",
"explanation": "This report lists all rescuers in your account who's patients were admitted within the date range specified.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/rescuers"
}
},
{
"type": "reports",
"id": "frugal-rescuers",
"attributes": {
"title": "Rescuers Who Have Not Donated",
"titleSlug": "rescuers-who-have-not-donated",
"explanation": "This report lists all rescuers in your account who's patients were admitted within the date range specified and have not made a donation.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/frugal-rescuers"
}
},
{
"type": "reports",
"id": "volunteers",
"attributes": {
"title": "Volunteers",
"titleSlug": "volunteers",
"explanation": "This report lists all volunteers created in your account within the date range specified.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/volunteers"
}
},
{
"type": "reports",
"id": "members",
"attributes": {
"title": "Members",
"titleSlug": "members",
"explanation": "This report lists all members created in your account within the date range specified.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/members"
}
},
{
"type": "reports",
"id": "donors",
"attributes": {
"title": "Donors",
"titleSlug": "donors",
"explanation": "This report lists all donors in your account who have donated within the date range specified.",
"data": null
},
"links": {
"self": "https://www.wrmd.org/api/v3/reports/donors"
}
}
]
}
Received response:
Request failed with error:
Get Report
requires authentication
Fetch a report by its slug name.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/reports/total-dispositions-by-species',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/reports/total-dispositions-by-species"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/reports/total-dispositions-by-species'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/reports/total-dispositions-by-species" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "http://wrmd.test/api/v3/reports/total-dispositions-by-species"
},
"data": {
"type": "reports",
"id": "total-dispositions-by-species",
"attributes": {
"title": "Dispositions by Species",
"titleSlug": "dispositions-by-species",
"explanation": "",
"data": {
"dateFrom": "Jan 1, 2021",
"dateTo": "Aug 26, 2021",
"headings": [
"Common Name",
"Total",
"R",
"T",
"P",
"E",
"E +24hr",
"D",
"D +24hr",
"DOA",
"Survival Rate Including %",
"Survival Rate After %"
],
"collections": {
"Amphibia": [],
"Aves": [],
"Mammalia": [],
"Reptilia": [],
"Unidentified": []
},
"grand": []
}
},
"links": {
"self": "http://wrmd.test/api/v3/reports/total-dispositions-by-species"
}
}
}
Received response:
Request failed with error:
Rescuers
Rescuers and people are one and the same. Rescuers just refer to people that have an associated patient. To retrieve an individual rescuer use the api/v3/people/{id} endpoint.
List Rescuers
requires authentication
Fetch zero to many rescuers.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/rescuers',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'page[number]'=> '1',
'include'=> 'patients',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/rescuers"
);
const params = {
"page[number]": "1",
"include": "patients",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/rescuers'
params = {
'page[number]': '1',
'include': 'patients',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/rescuers?page[number]=1&include=patients" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1,
"perPage": 1,
"to": 1,
"total": 1
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://www.wrmd.org/api/v3/rescuers?include=patients&page%5Bnumber%5D=1&page%5Bsize%5D=1",
"last": "https://www.wrmd.org/api/v3/rescuers?include=patients&page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://www.wrmd.org/api/v3/rescuers?include=patients&page%5Bnumber%5D=2&page%5Bsize%5D=1"
},
"data": [
{
"type": "rescuers",
"id": "13",
"attributes": {
"organization": null,
"firstName": "Devin",
"lastName": "Dombrowski",
"phone": null,
"altPhone": null,
"email": null,
"country": null,
"subdivision": null,
"city": null,
"address": null,
"postalCode": null,
"notes": null,
"noSolicitations": false,
"isVolunteer": false,
"isMember": false,
"createdAt": "2012-10-18T02:41:47.000000Z",
"updatedAt": "2012-10-18T02:41:47.000000Z"
},
"relationships": {
"donations": {
"links": {
"related": "https://www.wrmd.org/api/v3/people/13/donations",
"self": "https://www.wrmd.org/api/v3/people/13/relationships/donations"
}
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/people/13/patients",
"self": "https://www.wrmd.org/api/v3/people/13/relationships/patients"
},
"data": [
{
"type": "patients",
"id": "15"
},
// ...
]
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/people/13"
}
}
],
"included": [
{
"type": "patients",
"id": "15",
"attributes": {
"caseNumber": "12-2",
"isFrozen": false,
"commonName": "Golden Eagle",
// ...
},
"relationships": {
"rescuer": {
"links": {
"related": "https://www.wrmd.org/api/v3/patients/15/rescuer"
}
},
"taxon": {
"links": {
"related": "https://www.wrmd.org/api/v3/patients/15/taxon"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/patients/15"
}
}
]
}
Received response:
Request failed with error:
Taxa
Taxa refers to biological groups of organisms organized by their taxonomic rank. In WRMD each taxon includes metadata such as its biological group (clade), conservation status and geographic distribution. A taxon has many common names and they will be automatically included in the api response.
List Taxa
requires authentication
Fetch zero to many taxa.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/taxa',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
'query' => [
'page[number]'=> '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/taxa"
);
const params = {
"page[number]": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/taxa'
params = {
'page[number]': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/taxa?page[number]=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"meta": {
"page": {
"currentPage": 1,
"from": 1,
"lastPage": 1796,
"perPage": 15,
"to": 15,
"total": 26940
}
},
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://www.wrmd.org/api/v3/taxa?include=commonNames&page%5Bnumber%5D=1&page%5Bsize%5D=15",
"last": "https://www.wrmd.org/api/v3/taxa?include=commonNames&page%5Bnumber%5D=1796&page%5Bsize%5D=15",
"next": "https://www.wrmd.org/api/v3/taxa?include=commonNames&page%5Bnumber%5D=2&page%5Bsize%5D=15"
},
"data": [
{
"type": "taxa",
"id": 2946,
"attributes": {
"id": 2946,
"class": "Aves",
"order": "Passeriformes",
"family": "Fringillidae",
"genus": "Haemorhous",
"species": "mexicanus",
"alphaCode": "HOFI",
"createdAt": "2016-01-01T06:39:40.000000Z",
"updatedAt": "2018-01-26T17:38:46.000000Z"
},
"relationships": {
"commonNames": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/2946/common-names"
},
"data": [
{
"type": "common-names",
"id": "33770"
}
]
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/2946/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/taxa/2946"
}
},
// ...
],
"included": [
{
"type": "common-names",
"id": "33770",
"attributes": {
"commonName": "House Finch",
"subSpecies": null,
"alphaCode": null,
"language": "en",
"createdAt": "2016-01-01T06:39:40.000000Z",
"updatedAt": "2016-01-01T06:39:40.000000Z"
},
"relationships": {
"taxon": {
"links": {
"related": "https://www.wrmd.org/api/v3/common-names/33770/taxon"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/common-names/33770"
}
}
]
}
Received response:
Request failed with error:
Get Taxon
requires authentication
Fetch zero to one taxon by id.
Example request:
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://www.wrmd.org/api/v3/taxa/14',
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/vnd.api+json',
'Accept' => 'application/vnd.api+json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://www.wrmd.org/api/v3/taxa/14"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/vnd.api+json",
"Accept": "application/vnd.api+json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
import requests
import json
url = 'https://www.wrmd.org/api/v3/taxa/14'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
--get "https://www.wrmd.org/api/v3/taxa/14" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/vnd.api+json" \
--header "Accept: application/vnd.api+json"
Example response (200):
{
"jsonapi": {
"version": "1.0"
},
"links": {
"self": "https://www.wrmd.org/api/v3/taxa/2946"
},
"data": {
"type": "taxa",
"id": "2946",
"attributes": {
"class": "Aves",
"order": "Passeriformes",
"family": "Fringillidae",
"genus": "Haemorhous",
"species": "mexicanus",
"alphaCode": "HOFI",
"createdAt": "2016-01-01T06:39:41.000000Z",
"updatedAt": "2019-12-19T17:00:41.000000Z"
},
"relationships": {
"commonNames": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/2946/common-names"
},
"data": [
{
"type": "common-names",
"id": "33770"
}
]
},
"patients": {
"links": {
"related": "https://www.wrmd.org/api/v3/taxa/2946/patients"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/taxa/2946"
}
},
"included": [
{
"type": "common-names",
"id": "33770",
"attributes": {
"commonName": "House Finch",
"subSpecies": null,
"alphaCode": null,
"language": "en",
"createdAt": "2015-05-05T02:54:12.000000Z",
"updatedAt": "2017-12-26T04:02:07.000000Z"
},
"relationships": {
"taxon": {
"links": {
"related": "https://www.wrmd.org/api/v3/common-names/33770/taxon"
}
}
},
"links": {
"self": "https://www.wrmd.org/api/v3/common-names/33770"
}
}
]
}
Received response:
Request failed with error: