Skip to main content
All Docs
API ReferencemyProp (AgentOS People Portal)Updated April 4, 2026

Lambda BFF API Compatibility Layer

Lambda BFF API Compatibility Layer

Available from: v0.1.65

The BFF (Backend-for-Frontend) compatibility layer exposes a REST API at /api/bff/* that replicates the original Lambda BFF contract. It allows the Vue.js/Capacitor mobile app and any external integrations built against the original API to continue operating without changes.

Base path

/api/bff/

Authentication

/api/bff is in the PUBLIC_API_PREFIXES list — the route itself does not enforce server-side session authentication. Authentication is expected to be handled at the client level via the AWS Amplify SDK (Amazon Cognito), matching the original Lambda BFF behaviour.

Request format

All POST and PATCH endpoints accept a JSON body. Most endpoints require at minimum a clientName field.

{
  "clientName": "your-agency-slug",
  "emailAddress": "user@example.com"
}

The AWS Amplify SDK wraps payloads in a body envelope — this is handled transparently by the route handler.

Response format

All endpoints return the original Lambda BFF response shape:

Success:

{ "status": "200", "data": { ... } }

Error:

{ "status": "400", "error": "clientName is required" }

HTTP status codes are also set correctly on the response.


Endpoints

Accounts

POST /api/bff/accounts

Discover accounts associated with an email address.

ParameterRequiredDescription
clientNameAgency slug
emailAddressUser's email address

POST /api/bff/accounts/payment-requests

Fetch outstanding payment requests for a person.

ParameterRequiredDescription
clientNameAgency slug
personIDPerson identifier

Company

POST /api/bff/company/verify

Verify that a company (agency) exists and is configured.

ParameterRequiredDescription
clientNameAgency slug

POST /api/bff/company/currency

Retrieve currency configuration for a company.

ParameterRequiredDescription
clientNameAgency slug

POST /api/bff/company/urls/generic

Fetch branch URLs for a company.

ParameterRequiredDescription
clientNameAgency slug

POST /api/bff/company/search

Search within a company's data.

ParameterRequiredDescription
clientNameAgency slug
payloadSearch payload

Overrides

POST /api/bff/overrides

Fetch company-level feature flag overrides.

ParameterRequiredDescription
clientNameAgency slug

POST /api/bff/overrides/fixflo

Fetch Fixflo override settings for a specific person.

ParameterRequiredDescription
clientNameAgency slug
personIDPerson identifier

Messaging

POST /api/bff/messaging/messages

Fetch messages for a user.

ParameterRequiredDescription
clientNameAgency slug
userIDUser identifier
offsetPagination offset (default: 0)
countNumber of messages (default: 10)

POST /api/bff/messaging/message/send

Send a message.

ParameterRequiredDescription
clientNameAgency slug
payloadMessage payload

POST /api/bff/messaging/message/offer/respond

Respond to an offer message.

ParameterRequiredDescription
clientNameAgency slug
payloadOffer response payload

Tenant

POST /api/bff/accounts/tenant/active

Fetch active tenancy data for a tenant.

ParameterRequiredDescription
clientNameAgency slug
tenantIDTenant identifier

POST /api/bff/accounts/tenant/prospect

Fetch prospect data for a tenant applicant.

ParameterRequiredDescription
clientNameAgency slug
prospectIDProspect identifier

Buyer

POST /api/bff/accounts/buyer

Fetch buyer account data.

ParameterRequiredDescription
clientNameAgency slug
buyerIDBuyer identifier

POST /api/bff/accounts/buyer/offer

Submit or fetch an offer for a buyer.

ParameterRequiredDescription
clientNameAgency slug
buyerIDBuyer identifier
(additional fields)Offer data

PATCH /api/bff/accounts/buyer/situation

Update a buyer's situation.

ParameterRequiredDescription
clientNameAgency slug
buyerIDBuyer identifier

PATCH /api/bff/accounts/buyer/propertyalerts

Update a buyer's property alert preferences.

ParameterRequiredDescription
clientNameAgency slug
buyerIDBuyer identifier

PATCH /api/bff/accounts/buyer/feedback

Submit buyer feedback.

ParameterRequiredDescription
clientNameAgency slug
buyerIDBuyer identifier

Vendor

POST /api/bff/accounts/vendor

Fetch vendor account data.

ParameterRequiredDescription
clientNameAgency slug
vendorIDVendor identifier

Landlord

All landlord endpoints require clientName and LandlordID.

MethodPathDescription
POST/api/bff/accounts/landlord/insightsLandlord dashboard insights
POST/api/bff/accounts/landlord/maintenance-jobsActive maintenance jobs
POST/api/bff/accounts/landlord/maintenance-job-notesNotes for a specific job (also requires jobID)
POST/api/bff/accounts/landlord/rent-arrearsRent arrears data
POST/api/bff/accounts/landlord/reports/portfolioPortfolio report
POST/api/bff/accounts/landlord/reports/profit-lossProfit & loss report
POST/api/bff/accounts/landlord/reports/quickbooksQuickBooks export data

Additional landlord endpoints cover statements, tenancies, tenancy details, portfolio structure, and property blocks (22 endpoints total).


Contractor

All contractor endpoints require clientName and contractorID.

11 endpoints are available covering:

  • Profile
  • Contacts
  • Maintenance jobs
  • Statements
  • Invoices

Prospects

3 PATCH endpoints for updating prospect data:

PathDescription
/api/bff/accounts/prospect/preferencesUpdate preferences
/api/bff/accounts/prospect/propertyalertsUpdate property alerts
/api/bff/accounts/prospect/feedbackSubmit feedback

Affiliate

GET /api/bff/affiliate/links/{flow}

Fetch affiliate link data for a given flow.

Query ParameterRequiredDescription
clientNameAgency slug

Example:

GET /api/bff/affiliate/links/signup?clientName=your-agency-slug

Internal implementation

All BFF routes delegate to the same service functions used by the tRPC layer:

ServiceFunctions used
src/lib/letmc/clientletmcClient, LetmcNotConfiguredError, LetmcApiError
src/lib/letmc/accountsdiscoverAccounts()
src/lib/letmc/companyverifyCompany(), getCurrencyInfo(), getCompanyBranches()
src/lib/letmc/featuresgetCompanyOverrides(), getPersonFixfloOverride()
src/lib/letmc/payment-requestgetPaymentRequestData()

All errors are reported via captureError() and return a structured error response with an appropriate HTTP status code.

AgentOS API path structure

The handler maps requests to the AgentOS People Portal API at:

/v1/corporate/peopleportal/letmcletting/{clientName}/{resource}

The clientName value is URL-encoded before being used in path construction.