Overview
Placements connect deals to lenders. Each placement has a status that tracks the lender's progression (e.g., sent, reviewing, terms received, closed).
| Endpoint | Description |
|---|---|
GET /build/placements | List placements with filtering and pagination |
GET /placements/{id} | Get a single placement |
List Placements
/api/external/v2/build/placementsList placements with pagination
Response (200):
{
"request_id": "c5d6e7f8-a9b0-1234-8901-345678901234",
"timestamp": "2026-03-20T15:30:45Z",
"data": [
{
"id": 310,
"deal_id": 101,
"private_company_id": 12,
"contact_id": 78,
"status": "reviewing",
"lender_status": "under_review",
"lev_score": 87.5,
"score": 4.0,
"description": "Strong fit — lender actively lending on multifamily in this submarket",
"outreach_date": "2026-02-01",
"outreach_source": "direct",
"last_communication_date": "2026-03-15T10:00:00Z",
"lender_first_response_date": "2026-02-03T09:30:00Z",
"visibility": "visible",
"created_at": "2026-02-01T08:00:00Z",
"updated_at": "2026-03-15T10:00:00Z"
}
],
"pagination": {
"total": 8,
"limit": 50,
"has_more": false,
"next_cursor": null
}
}unauthorizedAuthentication required— Missing or invalid Authorization header
bad_requestcursor and sort cannot be combined; use offset pagination when sorting— Both cursor and sort params provided
Get Placement
/api/external/v2/placements/{placement_id}Get a single placement by ID
Response (200):
{
"request_id": "d6e7f8a9-b0c1-2345-9012-456789012345",
"timestamp": "2026-03-20T15:30:45Z",
"data": {
"id": 310,
"deal_id": 101,
"private_company_id": 12,
"contact_id": 78,
"status": "reviewing",
"lender_status": "under_review",
"lev_score": 87.5,
"score": 4.0,
"description": "Strong fit — lender actively lending on multifamily in this submarket",
"outreach_date": "2026-02-01",
"outreach_source": "direct",
"last_communication_date": "2026-03-15T10:00:00Z",
"lender_first_response_date": "2026-02-03T09:30:00Z",
"visibility": "visible",
"created_at": "2026-02-01T08:00:00Z",
"updated_at": "2026-03-15T10:00:00Z"
}
}unauthorizedAuthentication required— Missing or invalid Authorization header
not_foundPlacement not found— The ID doesn't exist or isn't accessible to the authenticated user
Placement Object
| Field | Type | Description |
|---|---|---|
id | integer | Placement identifier |
deal_id | integer | Associated deal ID |
private_company_id | integer|null | Lender private company ID |
contact_id | integer|null | Lender contact ID |
status | string|null | Current placement status |
lender_status | string|null | Lender-side status |
description | string|null | Placement description |
lev_score | number|null | AI-generated match score |
score | number|null | Manual score |
outreach_date | string|null | Date of initial outreach |
outreach_source | string|null | Source of outreach |
last_communication_date | string|null | Date of last communication |
lender_first_response_date | string|null | Date of lender's first response |
visibility | string|null | Placement visibility |
created_at | string|null | Creation timestamp |
updated_at | string|null | Last update timestamp |