Account info, subscription status, identifier validation, and full read/write access to your monitored entities.
Every request must include an Authorization header with a personal access token: Bearer {YOUR_AUTH_TOKEN}.
API access is scoped to your team's active subscription and rate-limited per token.
APIs for account information
Get detailed information about the authenticated user's account including team membership.
curl --request GET \
"https://monitorhq.com.au/api/v1/account" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json"
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/account", {
method: "GET",
headers,
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->get('https://monitorhq.com.au/api/v1/account');
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.get("https://monitorhq.com.au/api/v1/account", headers=headers)
{
"name": "John Doe",
"email": "admin@example.com",
"account_type": "admin",
"current_team": {
"name": "John's Team",
"personal_team": true,
"is_parent_team": true
},
"owned_teams": [
{
"name": "John's Team",
"personal_team": true,
"is_parent_team": true
}
],
"member_of_teams": [
{
"id": 2,
"name": "Another Team",
"role": "editor"
}
]
}
APIs for subscription status and usage
Get the current team's subscription status and usage information.
curl --request GET \
"https://monitorhq.com.au/api/v1/subscription" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json"
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/subscription", {
method: "GET",
headers,
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->get('https://monitorhq.com.au/api/v1/subscription');
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.get("https://monitorhq.com.au/api/v1/subscription", headers=headers)
{
"has_subscription": true,
"subscription": {
"plan": "Professional",
"status": "active",
"subscribed_at": "2026-01-15 10:00:00",
"expires_at": "2026-02-15 10:00:00",
"max_entities": 50,
"max_high_risk_entities": 10
},
"usage": {
"total": 25,
"high": 5,
"standard": 15,
"low": 5
},
"remaining": {
"slots": 25,
"high_risk_slots": 5
}
}
Returns {"has_subscription": false, "message": "No active subscription found"} when the team has no subscription.
APIs for validating and formatting ACN/ABN identifiers
Validate and format an ACN or ABN identifier. This endpoint determines the type of identifier and formats it correctly.
curl --request POST \
"https://monitorhq.com.au/api/v1/identifier/check" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json" \
--data '{
"identifier": "123456789"
}'
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/identifier/check", {
method: "POST",
headers,
body: JSON.stringify({
"identifier": "123456789"
}),
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->post('https://monitorhq.com.au/api/v1/identifier/check', [
'identifier' => '123456789',
]);
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.post(
"https://monitorhq.com.au/api/v1/identifier/check",
headers=headers,
json={
"identifier": "123456789"
}
)
{
"valid": true,
"type": "acn",
"formatted": "123 456 789",
"number": "123456789"
}
Returns 422 with {"valid": false, "message": "...", "errors": [...]} when neither a valid ACN nor ABN.
APIs for managing monitored entities
Get a list of all monitorings for the current team. By default, only active monitorings are returned.
curl --request GET \
"https://monitorhq.com.au/api/v1/monitorings?page=1&per_page=15&risk_level=high&is_active=true" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json"
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/monitorings?page=1&per_page=15&risk_level=high&is_active=true", {
method: "GET",
headers,
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->get('https://monitorhq.com.au/api/v1/monitorings?page=1&per_page=15&risk_level=high&is_active=true');
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.get("https://monitorhq.com.au/api/v1/monitorings?page=1&per_page=15&risk_level=high&is_active=true", headers=headers)
{
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_name": "Example Pty Ltd",
"entity_type": "company",
"acn": "123456789",
"abn": "12345678901",
"risk_level": "high",
"added_at": "2026-01-15T10:00:00Z"
}
],
"links": {
"first": "https://monitorhq.com.au/api/v1/monitorings?page=1",
"last": null,
"prev": null,
"next": "https://monitorhq.com.au/api/v1/monitorings?page=2"
},
"meta": {
"current_page": 1,
"current_page_url": "https://monitorhq.com.au/api/v1/monitorings?page=1",
"from": 1,
"path": "https://monitorhq.com.au/api/v1/monitorings",
"per_page": 15,
"to": 1
}
}
Add an entity to your monitoring list. The entity will be fetched and monitored automatically. Either acn or abn is required.
curl --request POST \
"https://monitorhq.com.au/api/v1/monitorings" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json" \
--data '{
"acn": "123456789",
"abn": "12345678901",
"risk_level": "high"
}'
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/monitorings", {
method: "POST",
headers,
body: JSON.stringify({
"acn": "123456789",
"abn": "12345678901",
"risk_level": "high"
}),
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->post('https://monitorhq.com.au/api/v1/monitorings', [
'acn' => '123456789',
'abn' => '12345678901',
'risk_level' => 'high',
]);
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.post(
"https://monitorhq.com.au/api/v1/monitorings",
headers=headers,
json={
"acn": "123456789",
"abn": "12345678901",
"risk_level": "high"
}
)
{
"message": "Monitoring added successfully",
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_name": "Example Pty Ltd",
"entity_type": "APTY",
"acn": "123456789",
"abn": "12345678901",
"risk_level": "high",
"added_at": "2026-01-15T10:00:00Z"
}
}
Get detailed information about a specific monitoring by UUID.
curl --request GET \
"https://monitorhq.com.au/api/v1/monitorings/{uuid}" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json"
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/monitorings/{uuid}", {
method: "GET",
headers,
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->get('https://monitorhq.com.au/api/v1/monitorings/{uuid}');
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.get("https://monitorhq.com.au/api/v1/monitorings/{uuid}", headers=headers)
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"risk_level": "high",
"added_at": "2026-01-15T10:00:00Z",
"entity_details": {
"entity_name": "Example Pty Ltd",
"entity_type": "APTY",
"acn": "123456789",
"abn": "12345678901",
"state": "VIC",
"acn_status": "REGD",
"acn_registration_date": "2020-01-15T00:00:00Z",
"acn_review_date": "2026-01-15T00:00:00Z",
"abn_status": "Active",
"abn_registration_date": "2020-01-15T00:00:00Z",
"gst_date": "2020-01-15T00:00:00Z",
"primary_address": {
"type": "RG",
"state": "VIC",
"locality": "MELBOURNE",
"postCode": "3000",
"addressLine": "123 Example St"
},
"secondary_address": {},
"business_names": [],
"former_names": []
},
"recent_history": [
{
"type": "abn_registration",
"effective_date": "2020-01-15T00:00:00Z",
"title": "ABN Registered",
"description": "Australian Business Number registered"
}
]
}
Get paginated check results history for a specific monitoring.
curl --request GET \
"https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=1&per_page=15&event_type=abn_registration" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json"
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=1&per_page=15&event_type=abn_registration", {
method: "GET",
headers,
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->get('https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=1&per_page=15&event_type=abn_registration');
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.get("https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=1&per_page=15&event_type=abn_registration", headers=headers)
{
"data": [
{
"type": "abn_registration",
"effective_date": "2020-01-15T00:00:00Z",
"title": "ABN Registered",
"description": "Australian Business Number registered"
}
],
"links": {
"first": "https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=1",
"last": null,
"prev": null,
"next": "https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=2"
},
"meta": {
"current_page": 1,
"current_page_url": "https://monitorhq.com.au/api/v1/monitorings/{uuid}/history?page=1",
"from": 1,
"path": "https://monitorhq.com.au/api/v1/monitorings/{uuid}/history",
"per_page": 15,
"to": 3
}
}
Update a monitoring's risk level.
curl --request PUT \
"https://monitorhq.com.au/api/v1/monitorings/{uuid}" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json" \
--data '{
"risk_level": "standard"
}'
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/monitorings/{uuid}", {
method: "PUT",
headers,
body: JSON.stringify({
"risk_level": "standard"
}),
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->put('https://monitorhq.com.au/api/v1/monitorings/{uuid}', [
'risk_level' => 'standard',
]);
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.put(
"https://monitorhq.com.au/api/v1/monitorings/{uuid}",
headers=headers,
json={
"risk_level": "standard"
}
)
{
"message": "Monitoring updated successfully",
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_name": "Example Pty Ltd",
"entity_type": "company",
"acn": "123456789",
"abn": "12345678901",
"risk_level": "standard",
"added_at": "2026-01-15T10:00:00Z"
}
}
Stop monitoring an entity. The entity will be removed from your monitoring list. Only team owners can stop monitorings.
curl --request DELETE \
"https://monitorhq.com.au/api/v1/monitorings/{uuid}" \
--header "Authorization: Bearer {YOUR_AUTH_TOKEN}" \
--header "Content-Type: application/json"
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
};
fetch("https://monitorhq.com.au/api/v1/monitorings/{uuid}", {
method: "DELETE",
headers,
}).then(response => response.json());
$response = Http::withHeaders([
'Authorization' => 'Bearer {YOUR_AUTH_TOKEN}',
])
->delete('https://monitorhq.com.au/api/v1/monitorings/{uuid}');
import requests
headers = {
"Authorization": "Bearer {YOUR_AUTH_TOKEN}",
}
response = requests.delete("https://monitorhq.com.au/api/v1/monitorings/{uuid}", headers=headers)
{
"message": "Monitoring stopped successfully"
}