v0.1.0 — Public Beta

Your home,
maintained.

REST API powering the PropDoc platform. Track properties, assets, and maintenance tasks — with health scores, scheduling, and push notifications built in.

terminal
$curl -X GET \
"https://api.getpropdoc.com/api/properties/abc123/health-score" \
-H "Authorization: Bearer <token>"
{
"propertyId": "abc123",
"score": 87,
"grade": "B+",
"completedTasks": 14,
"openTasks": 2,
"overdueTasks": 0
}

Endpoints

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

  • GET
    /api/tasks

    List maintenance tasks

  • POST
    /api/tasks

    Create a task

  • PATCH
    /api/tasks/:id

    Update task

  • POST
    /api/tasks/:id/complete

    Mark task complete

Schedules

  • GET
    /api/schedules

    List maintenance schedules

  • POST
    /api/schedules

    Create schedule

  • PATCH
    /api/schedules/:id

    Update schedule

Account

  • GET
    /api/me

    Current user profile

  • POST
    /api/push/register

    Register push token

Quick Start

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

01Sign in
const { data } = await supabase.auth
  .signInWithPassword({
    email: "you@example.com",
    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();