Is my landlord legit?

Before signing a lease and handing over thousands, verify the management company is real.

2 API calls · $0.01
← All examples
🔑 Renters
✈️ Relocators
👨‍👩‍👧 Parents of students
🏢 Tenant advocates

How can I check if my Florida landlord is legitimate before signing a lease? You're about to sign a lease and wire first month + last month + security deposit. The listing says "managed by" an LLC you've never heard of. Before sending $4,500 to a stranger, one lookup confirms whether the company is real, how long it's existed, and whether the person you're dealing with is actually connected to it.

In this example, the lease names "Example Property Management LLC."

The lookup

Search the management company name
GET /api/v1/corporations/search/name?name=EXAMPLE+PROPERTY+MANAGEMENT
Entity
EXAMPLE PROPERTY MANAGEMENT LLC
Status
Active
Document #
L00000000002
Filed
Feb 8, 2019
Full detail
GET /api/v1/corporations/detail?documentNumber=L00000000002
Manager
John Example (type: Person)
FEI / EIN
00-0000000
Principal address
456 Example Blvd, Ste 200, West Palm Beach, FL 33400
Annual reports
2020 – 2026 (all filed)

What you learn

Real company, 7+ years old. Filed in 2019 and current on all annual reports. This is an established operation.
Named person on file. John Example is the manager — you can verify this matches the person you're dealing with.
Proper business address. Commercial office suite — not a PO box or residential address.
Has an EIN. Means they file taxes, have bank accounts, and operate as a real business entity.
Green light — but verify the contact

The entity checks out. Before wiring money, confirm one thing:

  • Does the person collecting your deposit match the officer on file?
  • If "John Example" is on file but "Mike" is collecting — ask questions
  • Wire to the LLC's bank account, never a personal Venmo or Zelle

If the person matches and the LLC is active with years of history, you're dealing with a real operation. Total cost of confirming: $0.01.

Red flags to watch for

⚠️
Entity not found. The LLC doesn't exist in the registry. Major red flag — don't send money.
⚠️
Status: Inactive or Dissolved. The company was shut down. Don't send money.
⚠️
Filed days ago. A management company formed last week has no track record.
⚠️
Contact doesn't match officer. If the person collecting money isn't on file, ask why.

How it's built

Two API calls, one API key. Search the company name from the lease, then check the detail for status, officers, and history.

Try it — copy, paste, run
terminal
# Step 1: Search the company name from the lease
# Replace "EXAMPLE+PROPERTY+MANAGEMENT" with the actual name
$ curl -s -H "x-api-key: $API_KEY" \
    "https://api.sunbizdata.com/api/v1/corporations/search/name?name=EXAMPLE+PROPERTY+MANAGEMENT"

< 200 OK (32ms)
{ "results": [{
    "documentNumber": "L00000000002",
    "corporationName": "EXAMPLE PROPERTY MANAGEMENT LLC",
    "status": "Active",
    "fileDate": "02082019"
  }], "total": 1 }

# Step 2: Get full detail — officers, annual reports, EIN
# Replace "L00000000002" with the documentNumber from step 1
$ curl -s -H "x-api-key: $API_KEY" \
    "https://api.sunbizdata.com/api/v1/corporations/detail?documentNumber=L00000000002"

< 200 OK (39ms)
{
  "corporationName": "EXAMPLE PROPERTY MANAGEMENT LLC",
  "status": "Active",
  "fileDate": "02082019",
  "feiNumber": "00-0000000",
  "officers": [
    { "title": "MGR", "type": "P", "name": "EXAMPLE JOHN" }
  ],
  "annualReports": [
    { "year": "2026", "date": "01152026" },
    { "year": "2025", "date": "02032025" }
  ]
}
Drop into your app
node.js
// Check if a landlord/management company is legitimate
async function checkLandlord(companyName) {
  const headers = { "x-api-key": process.env.SUNBIZDATA_KEY };
  const search = await fetch(
    `https://api.sunbizdata.com/api/v1/corporations/search/name?name=${companyName}`,
    { headers }
  ).then(r => r.json());

  if (!search.results.length) return { legitimate: false, reason: "not found" };

  const detail = await fetch(
    `https://api.sunbizdata.com/api/v1/corporations/detail?documentNumber=${search.results[0].documentNumber}`,
    { headers }
  ).then(r => r.json());

  const yearsActive = new Date().getFullYear() - parseInt(detail.fileDate.slice(4));

  return {
    legitimate: detail.status === "Active",
    name: detail.corporationName,
    yearsActive,
    hasEin: !!detail.feiNumber,
    officers: detail.officers.map(o => o.name),
    reportsUpToDate: detail.annualReports.some(r => r.year === String(new Date().getFullYear())),
  };
}

Start with $5, get 1,000 requests

Pay per request. No subscription. Requests never expire.

Get started