Developer Platform Beta

Build on InsideHOA

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.

Work with the systems your community already has

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.

Existing Websites

Display current InsideHOA notifications and events on an existing HOA or community website without replacing it.

Custom Applications

Build resident portals, mobile experiences, dashboards, and other community-specific applications.

Automated Workflows

Connect InsideHOA with external services and workflows while preserving a consistent source of community data.

Available Today

Public Notifications API

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.

GET /api/public/v1/ping
Authentication

Verify API access

Verifies 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.

GET /api/public/v1/notifications
public.notifications.read

Retrieve public notifications

Returns the latest public version of each notification available to the HOA associated with the API key.

Returned content

  • Notification title and content
  • Notification type and optional type filtering
  • Original/root author name
  • Root and current-version identifiers
  • Attachments and public image URLs
  • Structured event details and legacy event fields
  • Meeting details when applicable
  • HOA display time zone
  • Cursor-based paging

Query parameters

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.

Display order

Notifications are returned in their intended display order:

  1. Pinned notifications first
  2. Newest notification versions first within each group

Clients should preserve the order returned by the API and should not re-sort results by date alone.

Paging behavior

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.

Date and time

All API date-time values are returned in UTC.

Use hoaTimeZone to convert UTC timestamps into the HOA's appropriate local display time.

Legacy event compatibility

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.

GET /api/public/v1/notifications/{notificationPk}/{notificationId}
public.notifications.read

Retrieve a specific notification

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.

notificationPk

The permanent root identifier for the notification. It remains the same across all edits.

notificationId

The identifier of the current notification version. This changes when a published notification is edited.

Important

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.

POST /api/public/v1/notifications/{notificationPk}/view
public.notifications.read

Record a notification view

Records 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.

Simple API key authentication

Each integration receives a scoped API key associated with a specific HOA.

X-IHOA-API-Key: your_api_key

API keys should only be stored and used in secure server-side code. They should never be exposed in public browser JavaScript.

Designed for secure integrations

  • HTTPS-only access
  • HOA-specific API keys
  • Scoped permissions
  • Versioned API endpoints
  • Revocable credentials
  • Optional expiration dates

Getting Started

Verify your API key

Use the ping endpoint to confirm that authentication is working before requesting notification data.

PHP

Server-side
$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);

Example response

JSON
{
  "name": "Community Website",
  "scopes": [
    "public.notifications.read"
  ]
}

Notifications

Request public 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.

PHP

Server-side
$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);

Example response

JSON
{
  "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"
}

Older event notifications

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
  }
}

UTC timestamps and HOA local time

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.

Keep paging parameters consistent

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.

Request the current notification version

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);

WordPress-friendly

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.

WordPress request example

$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
    );
}

Convert a UTC timestamp for display

$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.

Handle structured and legacy events

$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

Recording notification views

After displaying a notification, integrations should record a view when the notification becomes meaningfully visible to the visitor.

Recommended behavior

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.

Recommended flow
Visitor sees notification

Browser calls website server

Website server adds API key

InsideHOA records the view

WordPress server-side example

$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

Common response codes

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

Expanding the ways communities connect

The InsideHOA Developer Platform is actively expanding. Planned capabilities include additional public data, workflow integrations, and event-driven communication.

Public Events API

Structured community calendars and event occurrences.

Public Documents API

Secure access to approved public community documents.

Public Forms API

Connect community forms and submission workflows.

Community Directory API

Approved public directory and organization information.

Webhooks

Receive updates when important InsideHOA data changes.

Integration Guides

Expanded examples for WordPress, PHP, JavaScript, and .NET.

Developer Platform Beta

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.

Interested in building with InsideHOA?

Contact us to discuss API access, WordPress integration, community website synchronization, or a custom workflow.

Contact Us