CONTAINEER
Developer Portal

Build with the Containeer API

Programmatic access to cross-source real estate intelligence: companies, REIT-owned and CMBS-financed properties, securitized loans, US transactions, and the unified knowledge graph that ties them together.

Quick start

From zero to first response in under a minute.

1
Get your key
Request access via contact. Your account's API key is shown on your profile.
2
Authenticate
Send your key in the X-API-Key header on every request.
3
Make a call
Hit any endpoint under /api/v1/*. Responses are JSON; pagination is cursor-based where applicable.

Authentication

All /api/v1/* endpoints require an API key. Pass it as the X-API-Key header.

curl -H "X-API-Key: $CONTAINEER_API_KEY" \
  https://containeer-sec-production.up.railway.app/api/v1/companies?limit=5
Treat your API key like a password. Rotate it from your profile if you suspect exposure. The /health endpoint is the only public, unauthenticated route.

Make your first call

Search the unified property directory in three flavors.

import os
import requests

API_BASE = "https://containeer-sec-production.up.railway.app/api/v1"
API_KEY = os.environ["CONTAINEER_API_KEY"]

response = requests.get(
    f"{API_BASE}/unified/properties/search",
    params={"q": "Rockefeller Plaza", "limit": 10},
    headers={"X-API-Key": API_KEY},
)
response.raise_for_status()
data = response.json()

for prop in data["data"]:
    print(f"{prop['canonical_address']} ({prop['source']})")

Endpoint explorer

A curated tour of the most useful endpoints. The full reference lives in Swagger UI.

GET/api/v1/companies
Paginated company directory.
Query params
qstringFree-text search across canonical names and tickers.
limitintMax records (1-200, default 50).
cursorstringOpaque cursor for pagination.
Response shape
{ data: Company[], next_cursor: string | null, total: number }
GET/api/v1/companies/{company_hash_id}
Full company profile by 16-char hash ID. Backward compatible with bare CIK.
Response shape
{ company_hash_id, cik, lei, canonical_name, sic_description, jurisdiction, ... }
GET/api/v1/linking/companies/{company_id}/linked-properties
Properties linked to a company by entity resolution (owned, financed, serviced, originated).
Query params
rolestringFilter by role: owner | lender | servicer | originator.
limitintMax properties (default 100, max 500).
Response shape
{ properties_by_role: { owned: [], financed: [], serviced: [], originated: [] } }

Rate limits & fair use

No hard rate limits today. We expect reasonable use — sustained traffic above ~10 requests per second from a single key may be throttled.

Bulk extraction workloads should batch requests with cursor pagination and exponential backoff on5xx responses. Contact us if you need higher volumes; dedicated keys are available for enterprise.

Changelog

Recent additions to the public surface.

v1.4
April 2026
  • Knowledge Graph endpoints live (/api/v1/kg/*) — 13 tables, ~952K rows
  • Cross-source property entities (NYC + Chicago records) added to unified directory
  • Cost-basis financials exposed on REIT-owned property detail
v1.3
March 2026
  • Asset Explorer pins MV (gold.explorer_pins) with cross-source records
  • NYC transaction geocoding integrated into the map
v1.2
February 2026
  • Unified property directory (all asset categories) at /api/v1/unified/properties
  • 16-char hash IDs for stable, source-agnostic entity URLs

Ready to build?

Request API access and start integrating cross-source real estate intelligence today.