v0.1.0 — Public Beta

Your home,
maintained.

The REST API behind PropDoc — properties, assets, maintenance tasks, health scores, and gentle reminders. Quietly, on your schedule.

All systems operational
health-score
$ curl -X GET \
  "https://api.getpropdoc.com/api/properties/abc123/health-score" \
  -H "Authorization: Bearer ••••••"

{
  "propertyId": "abc123",
  "score": 87,
  "grade": "B+",
  "completedTasks": 14,
  "openTasks": 2,
  "overdueTasks": 0
}
Properties

Track what you own

Addresses, year built, square footage, rooms — the basics, neatly modeled.

Health Scores

Know where you stand

Asset coverage + maintenance compliance, rolled into one number from 0–100.

Reminders

Quietly, on time

Daily cron at 09:00 UTC. Push notifications when something's actually due.

Reference

Every endpoint, in one place.

All endpoints require a valid JWT in the Authorization: Bearer header.

Properties

  • GET
    /api/properties

    List all properties

  • POST
    /api/properties

    Create a property

  • GET
    /api/properties/:id

    Get property details

  • PATCH
    /api/properties/:id

    Update property

  • GET
    /api/properties/:id/health-score

    Property health score

Assets

  • GET
    /api/assets

    List assets

  • POST
    /api/assets

    Create an asset

  • PATCH
    /api/assets/:id

    Update asset

  • POST
    /api/assets/:id/photos

    Upload asset photo

Tasks & Schedules

  • GET
    /api/tasks

    List maintenance tasks

  • POST
    /api/tasks

    Create a task

  • POST
    /api/tasks/:id/complete

    Mark task complete

  • GET
    /api/schedules

    List schedules

  • POST
    /api/schedules

    Create schedule

Account & Push

  • GET
    /api/me

    Current user profile

  • POST
    /api/push/register

    Register push token

Quick start

Two steps to your first request.

Authenticate with Supabase, then call any endpoint with the returned access token.

01Sign in
const { data } = await supabase.auth
  .signInWithPassword({
    email: "[email protected]",
    password: "••••••••",
  });

const token = data.session?.access_token;
02Call an endpoint
const res = await fetch(
  "https://api.getpropdoc.com/api/properties",
  {
    headers: {
      Authorization: `Bearer ${token}`,
    },
  }
);

const { properties } = await res.json();

Welcome home.

Get the PropDoc app on iOS and let the API do the quiet work.