Connect community websites, applications, and custom workflows with InsideHOA through a simple, secure, versioned REST API.
Keep your existing website. Use InsideHOA to synchronize public notifications, community information, and engagement data with the tools your community already uses.
One platform. Multiple ways to connect.
InsideHOA can serve as the trusted source for public community information while allowing websites, mobile applications, digital signage, and other systems to present that information in the format that works best for them.
Display current InsideHOA notifications and events on an existing HOA or community website without replacing it.
Build resident portals, mobile experiences, dashboards, and other community-specific applications.
Connect InsideHOA with external services and workflows while preserving a consistent source of community data.
Available Today
Retrieve public notifications from InsideHOA and display them on an external website or application. The API supports notification-type filtering, paging, incremental synchronization, structured event details with legacy-event compatibility, attachments, original author names, HOA time-zone metadata, and notification engagement.
/api/public/v1/pingVerifies that an API key is valid and returns identifying information and the scopes assigned to the integration.
This is a useful first request when configuring a new integration or troubleshooting authentication.
/api/public/v1/notificationsReturns the latest public version of each notification available to the HOA associated with the API key.
limit |
Number of results. Defaults to 20; minimum 1 and maximum 100. |
type |
Optional notification filter. Supported values are General and Event. Omit this parameter to return all notification types. |
cursor |
Opaque paging cursor returned by the previous request. |
since |
ISO 8601 timestamp used for incremental synchronization. |
cursor and since cannot be used together in the same request.
When following nextCursor, keep the original paging inputs unchanged. Parameters such as limit and type must match the request that produced the cursor.
Notifications are returned in their intended display order:
Clients should preserve the order returned by the API and should not re-sort results by date alone.
When hasMore is true, use nextCursor to request the next page.
Subsequent cursor requests must use the same limit, type, and other filter values used for the original request.
All API date-time values are returned in UTC.
Use hoaTimeZone to convert UTC timestamps into the HOA's appropriate local display time.
Notifications created before structured event details were introduced may return event.details as null.
When details is present, clients should prefer details.occurrences. When it is null, use the legacy event.startDateTime, event.endDateTime, and event.isAllDay fields.
/api/public/v1/notifications/{notificationPk}/{notificationId}Returns a specific current notification document using the identifiers supplied by the notification-list response. Date-time values are UTC, the response includes hoaTimeZone for local display conversion, and older events may return event.details as null.
notificationPkThe permanent root identifier for the notification. It remains the same across all edits.
notificationIdThe identifier of the current notification version. This changes when a published notification is edited.
Always use both values returned by the notifications endpoint. For a notification with no edits, notificationPk and notificationId may be identical. After an edit, the root identifier remains the same while the current-version identifier changes.
/api/public/v1/notifications/{notificationPk}/viewRecords public engagement when a notification becomes meaningfully visible to a visitor.
A request body is not required. Duplicate views are permitted. A successful request returns 204 No Content.
Each integration receives a scoped API key associated with a specific HOA.
X-IHOA-API-Key: your_api_keyAPI keys should only be stored and used in secure server-side code. They should never be exposed in public browser JavaScript.
Getting Started
Use the ping endpoint to confirm that authentication is working before requesting notification data.
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL =>
'https://services.insidehoa.com' .
'/api/public/v1/ping',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-IHOA-API-Key: YOUR_API_KEY'
]
]);
$response = curl_exec($curl);
curl_close($curl);
{
"name": "Community Website",
"scopes": [
"public.notifications.read"
]
}
Notifications
The API can be used from PHP, WordPress, .NET, JavaScript server environments, and any system capable of making HTTPS requests. Omit type to retrieve all public notifications, or use General or Event to filter the result.
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL =>
'https://services.insidehoa.com' .
'/api/public/v1/notifications?limit=20&type=Event',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-IHOA-API-Key: YOUR_API_KEY'
]
]);
$response = curl_exec($curl);
curl_close($curl);
{
"items": [
{
"notificationPk":
"cd9f775f7ce3468297ad7b6e59751215",
"notificationId":
"8877fb91a1b143dcad87ca4c5df28829",
"notificationType":
"Event",
"title":
"Board Meeting",
"author":
"Community News",
"contentText":
"The board will meet Thursday evening.",
"event": {
"details": {
"eventType":
"BoardMeeting",
"occurrences": [
{
"startDateTime":
"2026-10-01T23:30:00Z",
"endDateTime":
"2026-10-02T01:30:00Z",
"location":
"Remote"
}
]
}
}
}
],
"nextCursor":
null,
"hasMore":
false,
"hoaTimeZone":
"Mountain Standard Time"
}
Events created before structured event details were introduced can still be returned by version 1.
For these records, event.details may be null. Use the legacy event summary fields instead.
{
"event": {
"startDateTime":
"2026-07-25T21:00:00Z",
"endDateTime":
"2026-07-26T00:00:00Z",
"isAllDay":
false,
"details":
null
}
}
All date-time values returned by the API are expressed in UTC, including notification creation and modification times, event occurrences, and image URL expiration times.
Use the response-level hoaTimeZone value to convert UTC timestamps into the HOA's local time before displaying them. The current value is a Windows time-zone identifier, such as Mountain Standard Time.
A paging cursor is tied to the query that created it. When requesting the next page, send the cursor with the same limit and type values used for the previous request. Do not combine cursor with since, and treat the cursor as an opaque value.
Use both identifiers from the notification-list response when requesting a specific notification.
$notification_pk =
'cd9f775f7ce3468297ad7b6e59751215';
$notification_id =
'8877fb91a1b143dcad87ca4c5df28829';
$url =
'https://services.insidehoa.com' .
'/api/public/v1/notifications/' .
rawurlencode($notification_pk) .
'/' .
rawurlencode($notification_id);
InsideHOA can be integrated into an existing WordPress website using the native WordPress HTTP API.
A lightweight custom plugin can retrieve notifications, support both structured and legacy event records, convert UTC timestamps using the returned HOA time zone, render the content within the website, and record engagement without exposing the InsideHOA API key to visitors.
$response = wp_remote_get(
'https://services.insidehoa.com' .
'/api/public/v1/notifications?limit=20&type=Event',
[
'headers' => [
'X-IHOA-API-Key' =>
INSIDEHOA_API_KEY
],
'timeout' => 10
]
);
if (!is_wp_error($response)) {
$notifications = json_decode(
wp_remote_retrieve_body($response),
true
);
}
$utc = new DateTime(
$start_date_time,
new DateTimeZone('UTC')
);
$utc->setTimezone(
new DateTimeZone(
$windows_to_iana[
$notifications['hoaTimeZone']
]
)
);
PHP uses IANA time-zone identifiers. If the API returns a Windows identifier such as Mountain Standard Time, the integration must map it to the corresponding IANA identifier, such as America/Denver.
$event =
$notification['event'] ?? null;
if (!empty($event['details'])) {
$occurrences =
$event['details']['occurrences'] ?? [];
} elseif ($event !== null) {
$occurrences = [[
'startDateTime' =>
$event['startDateTime'] ?? null,
'endDateTime' =>
$event['endDateTime'] ?? null,
'isAllDay' =>
$event['isAllDay'] ?? false
]];
}
Engagement
After displaying a notification, integrations should record a view when the notification becomes meaningfully visible to the visitor.
Record one view after at least 50% of the notification has remained visible for approximately one second.
Use the notification’s notificationPk value when calling the view endpoint.
Browser code should call a server-side WordPress or application endpoint. That server-side endpoint then securely calls InsideHOA using the HOA API key.
$notification_pk =
'cd9f775f7ce3468297ad7b6e59751215';
$response = wp_remote_post(
'https://services.insidehoa.com' .
'/api/public/v1/notifications/' .
rawurlencode($notification_pk) .
'/view',
[
'headers' => [
'X-IHOA-API-Key' =>
INSIDEHOA_API_KEY
],
'timeout' => 10
]
);
HTTP Responses
| Code | Meaning |
|---|---|
200 |
The request completed successfully. |
204 |
The notification view was recorded successfully. |
400 |
The request parameters are invalid. |
401 |
The API key is missing, invalid, or expired. |
403 |
The API key does not have the required scope. |
404 |
The requested notification could not be found. |
Platform Roadmap
The InsideHOA Developer Platform is actively expanding. Planned capabilities include additional public data, workflow integrations, and event-driven communication.
Structured community calendars and event occurrences.
Secure access to approved public community documents.
Connect community forms and submission workflows.
Approved public directory and organization information.
Receive updates when important InsideHOA data changes.
Expanded examples for WordPress, PHP, JavaScript, and .NET.
The InsideHOA Developer Platform is currently available to selected customers and integration partners. APIs and documentation may continue to evolve as we gather feedback from early adopters.
Contact us to discuss API access, WordPress integration, community website synchronization, or a custom workflow.
Contact Us