Skip to main content

planpoint-sdk-php

Official PHP SDK for the Planpoint API.

Requirements

  • PHP 8.1+
  • Composer

Installation

Create a composer.json in your project:
Then install:
SSL Note: If you get a cURL SSL certificate error on Windows, download the CA bundle and add to your php.ini:
Download cacert.pem from curl.se/ca/cacert.pem.

Quick Start

API Reference

Authentication

$client->authentication->login(LoginBody $request)

Authenticate and receive a JWT token. Returns: LoginResponse->accessToken: string

Projects

$client->projects->getMyProjects()

List all projects belonging to the authenticated user. Requires auth. Returns: ProjectSummary[]->name, ->namespace, ->hostName, ->status, ->paused, ->createdAt

$client->projects->findProject(FindProjectRequest $request)

Find a public project by namespace and hostname. No auth required. Returns: Project — full project with floors, units, settings

$client->projects->getProject(string $id)

Get a project by ID. Requires auth. Returns: Project

$client->projects->updateProject(string $id, UpdateProjectRequest $request)

Update project settings. Requires auth. Returns: Project

Groups

$client->groups->getGroups()

List all groups for the authenticated user. Requires auth. Returns: GroupsListResponse->records: Group[], ->count: int

$client->groups->getGroup(string $id)

Get a group by ID. Requires auth. Returns: Group->name, ->namespace, ->hostName, ->type, ->projects, ->isOwner, ->isAdmin, ->isEditor

$client->groups->createGroup(CreateGroupRequest $request)

Create a new group. Requires auth. Returns: Group

$client->groups->updateGroup(string $id, UpdateGroupRequest $request)

Update a group. Requires auth. Returns: Group

Floors

$client->floors->getFloors(GetFloorsRequest $request)

List all floors for a project. Requires auth. Returns: FloorFull[]->name, ->project, ->level, ->position, ->path, ->image

$client->floors->getFloor(string $id)

Get a floor by ID. Requires auth. Returns: FloorFull

$client->floors->createFloor(CreateFloorRequest $request)

Create a new floor. Requires auth. Returns: FloorFull

$client->floors->updateFloor(string $id, UpdateFloorRequest $request)

Update a floor. Requires auth. Returns: FloorFull

Units

$client->units->getUnits(GetUnitsRequest $request)

List all units for a project. Requires auth. Returns: UnitsListResponse->records: UnitFull[], ->count: int UnitFull fields: ->floor, ->name, ->unitNumber, ->status, ->price, ->bed, ->bath, ->sqft, ->model, ->orientation, ->parking status values: Available | OnHold | Sold | Leased | Unavailable

$client->units->getUnit(string $id)

Get a unit by ID. Requires auth. Returns: UnitFull

$client->units->createUnit(CreateUnitRequest $request)

Create a new unit. Requires auth. Returns: UnitFull

$client->units->updateUnit(string $id, UpdateUnitRequest $request)

Update a unit. Requires auth. Returns: UnitFull

$client->units->deleteUnit(string $id)

Delete a unit. Requires auth. Returns: array['message' => string]

$client->units->batchUpdateUnits(BatchUpdateUnitsRequest $request)

Update multiple units at once. Requires auth. Returns: UnitFull[]

Leads

$client->leads->getLeads(GetLeadsRequest $request)

List all leads for a project. Requires auth. Returns: Lead[]->name, ->email, ->phone, ->message, ->unit, ->createdAt