TenantBase Partner API
TenantBase is building an online marketplace that connects qualified tenants searching for space with available space options. By integrating with our API, you will have the opportunity to view our active requirements and provide listing content for consideration by current or future tenants.
The TenantBase Partner API provides programmatic access TenantBase platform features such as:
- Connect your existing listing inventory to TenantBase’s platform.
- Eliminate manual processes and be assured that the most reliable inventory information is available to tenants on our platform.
- Machine learning recommendations tailored to tenant requirements and space features.
- Proactively recommend tenants for your listing based on their requirements, including type of space, size, geography, etc..
- Receive alerts when new tenants are discovered that would match your listing.
- Your listing and available spaces will be automatically recommended to matching tenants.
How do I get access to the TenantBase Partner API?
Send an email to engineering@tenantbase.com and we will assist you in setting up your account.
How much does this cost?
We are able to provide the TenantBase platform and service at no cost to our users because fees associated with your lease are paid by building owners when you complete a transaction.
What if I have a suggestion or need help?
The TenantBase Partner API is under rapid development. Feel free to reach out to our team contact engineering@tenantbase.com.
Contact
API Support
engineering@tenantbase.com
Terms of Service: https://www.tenantbase.com/legal/
API Endpoints
Prod:
https://www.tenantbase.com/partner/graphql
Queries
listing
LeasingListingType
| Name | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user |
id -
Int!
|
Example
Query
query listing($token: String, $id: Int!) {
listing(token: $token, id: $id) {
id
listingType
publicNotes
privateNotes
created
uuid
building {
...BuildingTypeFragment
}
latestSource
website
access
accessDetails
searchScope
rowId
agents {
...ListingAgentTypeFragment
}
brochures {
...ListingBrochureTypeFragment
}
suites {
...SuiteTypeFragment
}
latestSuiteAvailability
dealsWithInterest {
...LeasingDealConnectionFragment
}
dealsWithViews {
...LeasingDealConnectionFragment
}
hasHadDealListingMatches
offers {
...LandlordOfferTypeFragment
}
recommendedDeals {
...LeasingDealConnectionFragment
}
}
}
Variables
{"token": "xyz789", "id": 123}
query listing($token: String, $id: Int!) {
listing(token: $token, id: $id) {
id
listingType
publicNotes
privateNotes
created
uuid
building {
...BuildingTypeFragment
}
latestSource
website
access
accessDetails
searchScope
rowId
agents {
...ListingAgentTypeFragment
}
brochures {
...ListingBrochureTypeFragment
}
suites {
...SuiteTypeFragment
}
latestSuiteAvailability
dealsWithInterest {
...LeasingDealConnectionFragment
}
dealsWithViews {
...LeasingDealConnectionFragment
}
hasHadDealListingMatches
offers {
...LandlordOfferTypeFragment
}
recommendedDeals {
...LeasingDealConnectionFragment
}
}
}
{"token": "xyz789", "id": 123}
Response
{
"data": {
"listing": {
"id": ID,
"listingType": ListingTypeEnum,
"publicNotes": "xyz789",
"privateNotes": "abc123",
"created": DateTime,
"uuid": "xyz789",
"building": BuildingType,
"latestSource": ListingLatestSource,
"website": "xyz789",
"access": ListingAccessTypeEnum,
"accessDetails": "abc123",
"searchScope": "abc123",
"rowId": 123.45,
"agents": [ListingAgentType],
"brochures": [ListingBrochureType],
"suites": [SuiteType],
"latestSuiteAvailability": "xyz789",
"dealsWithInterest": [LeasingDealConnection],
"dealsWithViews": [LeasingDealConnection],
"hasHadDealListingMatches": true,
"offers": [LandlordOfferType],
"recommendedDeals": [LeasingDealConnection]
}
}
}
managedUsers
ManagedPartnerUserTypeConnection
| Name | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user |
externalIds -
[String!]
|
If provided, looks up specific managed accounts based off external ids |
offset -
Int
|
|
before -
String
|
|
after -
String
|
|
first -
Int
|
|
last -
Int
|
Example
Query
query managedUsers($token: String, $externalIds: [String!], $offset: Int, $before: String, $after: String, $first: Int, $last: Int) {
managedUsers(token: $token, externalIds: $externalIds, offset: $offset, before: $before, after: $after, first: $first, last: $last) {
pageInfo {
...PageInfoFragment
}
edges {
...ManagedPartnerUserTypeEdgeFragment
}
}
}
Variables
{
"token": "abc123",
"externalIds": ["abc123"],
"offset": 123,
"before": "xyz789",
"after": "xyz789",
"first": 123,
"last": 987
}
query managedUsers($token: String, $externalIds: [String!], $offset: Int, $before: String, $after: String, $first: Int, $last: Int) {
managedUsers(token: $token, externalIds: $externalIds, offset: $offset, before: $before, after: $after, first: $first, last: $last) {
pageInfo {
...PageInfoFragment
}
edges {
...ManagedPartnerUserTypeEdgeFragment
}
}
}
{
"token": "abc123",
"externalIds": ["abc123"],
"offset": 123,
"before": "xyz789",
"after": "xyz789",
"first": 123,
"last": 987
}
Response
{
"data": {
"managedUsers": {
"pageInfo": PageInfo,
"edges": [ManagedPartnerUserTypeEdge]
}
}
}
markets
MarketTypeConnection
| Name | Description |
|---|---|
offset -
Int
|
|
before -
String
|
|
after -
String
|
|
first -
Int
|
|
last -
Int
|
Example
Query
query markets($offset: Int, $before: String, $after: String, $first: Int, $last: Int) {
markets(offset: $offset, before: $before, after: $after, first: $first, last: $last) {
pageInfo {
...PageInfoFragment
}
edges {
...MarketTypeEdgeFragment
}
}
}
Variables
{
"offset": 123,
"before": "xyz789",
"after": "abc123",
"first": 123,
"last": 987
}
query markets($offset: Int, $before: String, $after: String, $first: Int, $last: Int) {
markets(offset: $offset, before: $before, after: $after, first: $first, last: $last) {
pageInfo {
...PageInfoFragment
}
edges {
...MarketTypeEdgeFragment
}
}
}
{
"offset": 123,
"before": "xyz789",
"after": "abc123",
"first": 123,
"last": 987
}
Response
{
"data": {
"markets": {
"pageInfo": PageInfo,
"edges": [MarketTypeEdge]
}
}
}
myListings
LeasingListingTypeConnection
| Name | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user |
offset -
Int
|
|
before -
String
|
|
after -
String
|
|
first -
Int
|
|
last -
Int
|
Example
Query
query myListings($token: String, $offset: Int, $before: String, $after: String, $first: Int, $last: Int) {
myListings(token: $token, offset: $offset, before: $before, after: $after, first: $first, last: $last) {
pageInfo {
...PageInfoFragment
}
edges {
...LeasingListingTypeEdgeFragment
}
totalCount
}
}
Variables
{
"token": "abc123",
"offset": 123,
"before": "xyz789",
"after": "abc123",
"first": 987,
"last": 987
}
query myListings($token: String, $offset: Int, $before: String, $after: String, $first: Int, $last: Int) {
myListings(token: $token, offset: $offset, before: $before, after: $after, first: $first, last: $last) {
pageInfo {
...PageInfoFragment
}
edges {
...LeasingListingTypeEdgeFragment
}
totalCount
}
}
{
"token": "abc123",
"offset": 123,
"before": "xyz789",
"after": "abc123",
"first": 987,
"last": 987
}
Response
{
"data": {
"myListings": {
"pageInfo": PageInfo,
"edges": [LeasingListingTypeEdge],
"totalCount": 123
}
}
}
tenantBoardDeals
TenantBoardDealTypeConnection
| Name | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user |
market -
Int
|
|
offset -
Int
|
|
before -
String
|
|
after -
String
|
|
first -
Int
|
|
last -
Int
|
|
dealId -
Float
|
|
leaseTerm -
String
|
|
pipelineStage -
String
|
|
size -
String
|
|
spaceType -
String
|
|
transactionType -
String
|
Example
Query
query tenantBoardDeals($token: String, $market: Int, $offset: Int, $before: String, $after: String, $first: Int, $last: Int, $dealId: Float, $leaseTerm: String, $pipelineStage: String, $size: String, $spaceType: String, $transactionType: String) {
tenantBoardDeals(token: $token, market: $market, offset: $offset, before: $before, after: $after, first: $first, last: $last, dealId: $dealId, leaseTerm: $leaseTerm, pipelineStage: $pipelineStage, size: $size, spaceType: $spaceType, transactionType: $transactionType) {
pageInfo {
...PageInfoFragment
}
edges {
...TenantBoardDealTypeEdgeFragment
}
totalCount
}
}
Variables
{
"token": "xyz789",
"market": 123,
"offset": 123,
"before": "xyz789",
"after": "xyz789",
"first": 987,
"last": 987,
"dealId": 123.45,
"leaseTerm": "xyz789",
"pipelineStage": "abc123",
"size": "xyz789",
"spaceType": "abc123",
"transactionType": "xyz789"
}
query tenantBoardDeals($token: String, $market: Int, $offset: Int, $before: String, $after: String, $first: Int, $last: Int, $dealId: Float, $leaseTerm: String, $pipelineStage: String, $size: String, $spaceType: String, $transactionType: String) {
tenantBoardDeals(token: $token, market: $market, offset: $offset, before: $before, after: $after, first: $first, last: $last, dealId: $dealId, leaseTerm: $leaseTerm, pipelineStage: $pipelineStage, size: $size, spaceType: $spaceType, transactionType: $transactionType) {
pageInfo {
...PageInfoFragment
}
edges {
...TenantBoardDealTypeEdgeFragment
}
totalCount
}
}
{
"token": "xyz789",
"market": 123,
"offset": 123,
"before": "xyz789",
"after": "xyz789",
"first": 987,
"last": 987,
"dealId": 123.45,
"leaseTerm": "xyz789",
"pipelineStage": "abc123",
"size": "xyz789",
"spaceType": "abc123",
"transactionType": "xyz789"
}
Response
{
"data": {
"tenantBoardDeals": {
"pageInfo": PageInfo,
"edges": [TenantBoardDealTypeEdge],
"totalCount": 987
}
}
}
whoAmI
PartnerUserType
| Name | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user |
Example
Query
query whoAmI($token: String) {
whoAmI(token: $token) {
firstName
lastName
email
dateJoined
id
password
lastLogin
isSuperuser
username
isStaff
isActive
buildingphotoSet {
...BuildingPhotoTypeFragment
}
suitephotoSet {
...SuitePhotoTypeFragment
}
floorplanphotoSet {
...FloorplanPhotoTypeFragment
}
searchparameters {
...SearchParametersTypeFragment
}
advisor {
...AdvisorTypeFragment
}
offerfeedbackSet {
...OfferFeedbackTypeFragment
}
alertpreference {
...AlertPreferenceTypeFragment
}
leasingusermarketassociation {
...LeasingUserMarketAssociationTypeFragment
}
leasingalertpreference {
...LeasingAlertPreferenceTypeFragment
}
tenantleadSet(offset: $offset, before: $before, after: $after, first: $first, last: $last) {
...TenantLeadTypeConnectionFragment
}
rowId
}
}
Variables
{"token": "abc123"}
query whoAmI($token: String) {
whoAmI(token: $token) {
firstName
lastName
email
dateJoined
id
password
lastLogin
isSuperuser
username
isStaff
isActive
buildingphotoSet {
...BuildingPhotoTypeFragment
}
suitephotoSet {
...SuitePhotoTypeFragment
}
floorplanphotoSet {
...FloorplanPhotoTypeFragment
}
searchparameters {
...SearchParametersTypeFragment
}
advisor {
...AdvisorTypeFragment
}
offerfeedbackSet {
...OfferFeedbackTypeFragment
}
alertpreference {
...AlertPreferenceTypeFragment
}
leasingusermarketassociation {
...LeasingUserMarketAssociationTypeFragment
}
leasingalertpreference {
...LeasingAlertPreferenceTypeFragment
}
tenantleadSet(offset: $offset, before: $before, after: $after, first: $first, last: $last) {
...TenantLeadTypeConnectionFragment
}
rowId
}
}
{"token": "abc123"}
Response
{
"data": {
"whoAmI": {
"firstName": "xyz789",
"lastName": "xyz789",
"email": "abc123",
"dateJoined": DateTime,
"id": ID,
"password": "abc123",
"lastLogin": DateTime,
"isSuperuser": false,
"username": "xyz789",
"isStaff": false,
"isActive": false,
"buildingphotoSet": [BuildingPhotoType],
"suitephotoSet": [SuitePhotoType],
"floorplanphotoSet": [FloorplanPhotoType],
"searchparameters": SearchParametersType,
"advisor": AdvisorType,
"offerfeedbackSet": [OfferFeedbackType],
"alertpreference": AlertPreferenceType,
"leasingusermarketassociation": LeasingUserMarketAssociationType,
"leasingalertpreference": LeasingAlertPreferenceType,
"tenantleadSet": TenantLeadTypeConnection,
"rowId": 987.65
}
}
}
Mutations
createListing
Example
Query
mutation createListing($input: CreateListingInput!) {
createListing(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": CreateListingInput}
mutation createListing($input: CreateListingInput!) {
createListing(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": CreateListingInput}
Response
{
"data": {
"createListing": {
"listing": ListingType,
"clientMutationId": "xyz789"
}
}
}
createListingSuite
Example
Query
mutation createListingSuite($input: CreateListingSuiteInput!) {
createListingSuite(input: $input) {
suite {
...SuiteTypeFragment
}
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": CreateListingSuiteInput}
mutation createListingSuite($input: CreateListingSuiteInput!) {
createListingSuite(input: $input) {
suite {
...SuiteTypeFragment
}
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": CreateListingSuiteInput}
Response
{
"data": {
"createListingSuite": {
"suite": SuiteType,
"listing": ListingType,
"clientMutationId": "xyz789"
}
}
}
createManagedUser
Example
Query
mutation createManagedUser($input: CreateManagedUserInput!) {
createManagedUser(input: $input) {
created
clientMutationId
}
}
Variables
{"input": CreateManagedUserInput}
mutation createManagedUser($input: CreateManagedUserInput!) {
createManagedUser(input: $input) {
created
clientMutationId
}
}
{"input": CreateManagedUserInput}
Response
{
"data": {
"createManagedUser": {"created": false, "clientMutationId": "abc123"}
}
}
createOffer
Example
Query
mutation createOffer($input: CreateOfferInput!) {
createOffer(input: $input) {
offer {
...LandlordOfferTypeFragment
}
clientMutationId
}
}
Variables
{"input": CreateOfferInput}
mutation createOffer($input: CreateOfferInput!) {
createOffer(input: $input) {
offer {
...LandlordOfferTypeFragment
}
clientMutationId
}
}
{"input": CreateOfferInput}
Response
{
"data": {
"createOffer": {
"offer": LandlordOfferType,
"clientMutationId": "xyz789"
}
}
}
createTenantLead
Example
Query
mutation createTenantLead($input: CreateTenantLeadInput!) {
createTenantLead(input: $input) {
tenantLead {
...TenantLeadTypeFragment
}
clientMutationId
}
}
Variables
{"input": CreateTenantLeadInput}
mutation createTenantLead($input: CreateTenantLeadInput!) {
createTenantLead(input: $input) {
tenantLead {
...TenantLeadTypeFragment
}
clientMutationId
}
}
{"input": CreateTenantLeadInput}
Response
{
"data": {
"createTenantLead": {
"tenantLead": TenantLeadType,
"clientMutationId": "xyz789"
}
}
}
hidePhoto
Example
Query
mutation hidePhoto($input: HidePhotoInput!) {
hidePhoto(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": HidePhotoInput}
mutation hidePhoto($input: HidePhotoInput!) {
hidePhoto(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": HidePhotoInput}
Response
{
"data": {
"hidePhoto": {
"listing": ListingType,
"clientMutationId": "xyz789"
}
}
}
managedTokenAuth
ObtainManagedJSONWebTokenPayload
| Name | Description |
|---|---|
input -
ObtainManagedJSONWebTokenInput!
|
Example
Query
mutation managedTokenAuth($input: ObtainManagedJSONWebTokenInput!) {
managedTokenAuth(input: $input) {
payload
refreshExpiresIn
clientMutationId
token
refreshToken
}
}
Variables
{"input": ObtainManagedJSONWebTokenInput}
mutation managedTokenAuth($input: ObtainManagedJSONWebTokenInput!) {
managedTokenAuth(input: $input) {
payload
refreshExpiresIn
clientMutationId
token
refreshToken
}
}
{"input": ObtainManagedJSONWebTokenInput}
Response
{
"data": {
"managedTokenAuth": {
"payload": GenericScalar,
"refreshExpiresIn": 123,
"clientMutationId": "abc123",
"token": "abc123",
"refreshToken": "xyz789"
}
}
}
refreshToken
Example
Query
mutation refreshToken($input: RefreshInput!) {
refreshToken(input: $input) {
payload
refreshExpiresIn
clientMutationId
token
refreshToken
}
}
Variables
{"input": RefreshInput}
mutation refreshToken($input: RefreshInput!) {
refreshToken(input: $input) {
payload
refreshExpiresIn
clientMutationId
token
refreshToken
}
}
{"input": RefreshInput}
Response
{
"data": {
"refreshToken": {
"payload": GenericScalar,
"refreshExpiresIn": 123,
"clientMutationId": "xyz789",
"token": "xyz789",
"refreshToken": "abc123"
}
}
}
removeListing
Example
Query
mutation removeListing($input: RemoveListingInput!) {
removeListing(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": RemoveListingInput}
mutation removeListing($input: RemoveListingInput!) {
removeListing(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": RemoveListingInput}
Response
{
"data": {
"removeListing": {
"listing": ListingType,
"clientMutationId": "abc123"
}
}
}
revokeToken
Example
Query
mutation revokeToken($input: RevokeInput!) {
revokeToken(input: $input) {
revoked
clientMutationId
}
}
Variables
{"input": RevokeInput}
mutation revokeToken($input: RevokeInput!) {
revokeToken(input: $input) {
revoked
clientMutationId
}
}
{"input": RevokeInput}
Response
{"data": {"revokeToken": {"revoked": 123, "clientMutationId": "abc123"}}}
sortPhotos
Example
Query
mutation sortPhotos($input: SortPhotosInput!) {
sortPhotos(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": SortPhotosInput}
mutation sortPhotos($input: SortPhotosInput!) {
sortPhotos(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": SortPhotosInput}
Response
{
"data": {
"sortPhotos": {
"listing": ListingType,
"clientMutationId": "abc123"
}
}
}
tokenAuth
Example
Query
mutation tokenAuth($input: ObtainJSONWebTokenInput!) {
tokenAuth(input: $input) {
payload
refreshExpiresIn
clientMutationId
token
refreshToken
}
}
Variables
{"input": ObtainJSONWebTokenInput}
mutation tokenAuth($input: ObtainJSONWebTokenInput!) {
tokenAuth(input: $input) {
payload
refreshExpiresIn
clientMutationId
token
refreshToken
}
}
{"input": ObtainJSONWebTokenInput}
Response
{
"data": {
"tokenAuth": {
"payload": GenericScalar,
"refreshExpiresIn": 123,
"clientMutationId": "abc123",
"token": "abc123",
"refreshToken": "abc123"
}
}
}
updateListing
Example
Query
mutation updateListing($input: UpdateListingInput!) {
updateListing(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": UpdateListingInput}
mutation updateListing($input: UpdateListingInput!) {
updateListing(input: $input) {
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": UpdateListingInput}
Response
{
"data": {
"updateListing": {
"listing": ListingType,
"clientMutationId": "abc123"
}
}
}
updateSuite
Example
Query
mutation updateSuite($input: UpdateSuiteInput!) {
updateSuite(input: $input) {
suite {
...SuiteTypeFragment
}
listing {
...ListingTypeFragment
}
clientMutationId
}
}
Variables
{"input": UpdateSuiteInput}
mutation updateSuite($input: UpdateSuiteInput!) {
updateSuite(input: $input) {
suite {
...SuiteTypeFragment
}
listing {
...ListingTypeFragment
}
clientMutationId
}
}
{"input": UpdateSuiteInput}
Response
{
"data": {
"updateSuite": {
"suite": SuiteType,
"listing": ListingType,
"clientMutationId": "abc123"
}
}
}
verifyToken
Example
Query
mutation verifyToken($input: VerifyInput!) {
verifyToken(input: $input) {
payload
clientMutationId
}
}
Variables
{"input": VerifyInput}
mutation verifyToken($input: VerifyInput!) {
verifyToken(input: $input) {
payload
clientMutationId
}
}
{"input": VerifyInput}
Response
{
"data": {
"verifyToken": {
"payload": GenericScalar,
"clientMutationId": "abc123"
}
}
}
Types
AddressComponentsInput
An area or address as individual fields.
Acceptable subsets of provided address component fields are:
- street, city, state, zip
- city, state, zip
- city, state
- state, zip
- zip
| Input Field | Description |
|---|---|
street -
String
|
|
city -
String
|
|
state -
String
|
|
zipcode -
String
|
Example
{"street": "abc123", "city": "xyz789", "state": "xyz789", "zipcode": "xyz789"}
AdvisorOnboardingCompletionType
Fields related to an advisor's onboarding completion progress.
| Field Name | Description |
|---|---|
id -
ID!
|
|
hasAcceptedOneDeal -
Boolean
|
Indicates that the advisor has accepted at least one deal through TenantBase platform. If value is None, it indicates that this is not immediately applicable to the advisor because they do not currently have any deals proposed to them. |
hasActivatedAccount -
Boolean!
|
Indicates that the advisor has met with us and gotten off the probation tier. |
hasBio -
Boolean!
|
Indicates that the advisor has filled in their bio. |
hasCompletedProspectingDemo -
Boolean!
|
Indicates that the advisor has completed the Storylane prospecting demo. |
hasMadeIntroductionRequests -
Boolean!
|
Indicates that the advisor, or their teammates, have made at least minimumNumber introduction requests. |
|
Arguments
The minimum number of introduction requests necessary to consider the checklist item complete. |
|
hasUploadedPhoto -
Boolean!
|
Indicates that the advisor has uploaded a profile picture. |
Example
{
"id": ID,
"hasAcceptedOneDeal": false,
"hasActivatedAccount": false,
"hasBio": false,
"hasCompletedProspectingDemo": true,
"hasMadeIntroductionRequests": false,
"hasUploadedPhoto": false
}
AdvisorType
TenantBase representation of brokers/advisors.
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
bio -
String!
|
The advisor's biographical information as markdown text. |
bioRendered -
String!
|
The advisor's biographical information formatted as HTML. |
bioUrl -
String
|
The URL where the advisor's bio page can be accessed. |
company -
String!
|
The name of the brokerage where the advisor works. |
eligibleMarkets -
[MarketType!]!
|
The advisor's eligible market(s). |
email -
String!
|
The advisor's email address. |
firstName -
String!
|
The advisor's first name. |
isBdr -
Boolean!
|
Whether the advisor is a BDR. |
isTouringCapable -
Boolean!
|
Whether the advisor is capable of representing and touring tenants. This excludes corporate users and business development representatives. |
lastName -
String!
|
The advisor's last name. |
leadBounds -
GeoJSONMultiPolygon
|
The geographical region where the advisor handles deals. |
leadSuiteKind -
[SuiteKindTypeEnum!]!
|
The types of space that the advisor specializes in. This is currently limited to a single polygon, but we might extend it to support multipolygons in the future. |
licenseNumber -
String!
|
The advisor's real estate license number. |
linkedinUrl -
String!
|
The URL of the advisor's LinkedIn profile. |
market -
MarketType
|
The advisor's primary market. |
marketOther -
String!
|
A free-form representation of the advisor's market that is used when none of the core TenantBase markets are a fit. This can be used as a fallback when market is null. |
meetingLink -
String
|
A URL for scheduling meetings with the advisor. |
onboardingCompletion -
AdvisorOnboardingCompletionType!
|
Details about the advisor's onboarding progress. |
phoneNumber -
String!
|
The advisor's phone number. |
photoUrl -
String!
|
A URL pointing to the advisor's public profile picture. |
userIsAdvisor -
Boolean!
|
Whether the user making the request is the advisor. |
Example
{
"id": ID,
"rowId": 123.45,
"bio": "abc123",
"bioRendered": "xyz789",
"bioUrl": "abc123",
"company": "xyz789",
"eligibleMarkets": [MarketType],
"email": "xyz789",
"firstName": "abc123",
"isBdr": false,
"isTouringCapable": false,
"lastName": "abc123",
"leadBounds": GeoJSONMultiPolygon,
"leadSuiteKind": [SuiteKindTypeEnum],
"licenseNumber": "xyz789",
"linkedinUrl": "xyz789",
"market": MarketType,
"marketOther": "abc123",
"meetingLink": "abc123",
"onboardingCompletion": AdvisorOnboardingCompletionType,
"phoneNumber": "xyz789",
"photoUrl": "abc123",
"userIsAdvisor": true
}
AgentCreateInput
| Input Field | Description |
|---|---|
name -
String!
|
|
email -
String!
|
|
phone -
String!
|
|
company -
CompanyCreateInput
|
Example
{
"name": "abc123",
"email": "xyz789",
"phone": "abc123",
"company": CompanyCreateInput
}
AlertPreferenceFrequency
An enumeration.
| Enum Value | Description |
|---|---|
|
|
never |
|
|
daily |
|
|
weekly |
AlertPreferenceLayout
An enumeration.
| Enum Value | Description |
|---|---|
|
|
Any |
|
|
Mostly office |
|
|
Half office |
|
|
Open |
AlertPreferenceType
Represents a user's alert preferences.
| Field Name | Description |
|---|---|
frequency -
AlertPreferenceFrequency!
|
|
market -
MarketType!
|
|
layout -
AlertPreferenceLayout!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
kind -
[SuiteKindLegacyType!]!
|
|
monthlyBudgetRange -
IntegerRangeType
|
|
officeCountRange -
IntegerRangeType
|
|
sizeRange -
IntegerRangeType
|
|
submarkets -
[SubmarketType!]!
|
Example
{
"frequency": AlertPreferenceFrequency,
"market": MarketType,
"layout": AlertPreferenceLayout,
"id": ID,
"rowId": 123.45,
"kind": [SuiteKindLegacyType],
"monthlyBudgetRange": IntegerRangeType,
"officeCountRange": IntegerRangeType,
"sizeRange": IntegerRangeType,
"submarkets": [SubmarketType]
}
BillingSubscriptionType
| Field Name | Description |
|---|---|
stripeCancelAtPeriodEnd -
Boolean
|
Whether the user's plan is set to end. |
stripeCurrentPeriodEnd -
DateTime
|
The date which the current pay period ends. |
stripeSubscriptionStatus -
String
|
The status of the Subscription returned from Stripe. |
Example
{
"stripeCancelAtPeriodEnd": true,
"stripeCurrentPeriodEnd": DateTime,
"stripeSubscriptionStatus": "abc123"
}
BrokerContactType
Type definition for a Broker Contact.
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
company -
String
|
|
contactId -
Int!
|
|
created -
DateTime
|
|
email -
String
|
|
firstName -
String
|
|
jobTitle -
String
|
|
linkedinProfileUrl -
String
|
|
lastName -
String
|
|
phoneNumber -
String
|
|
tenantbaseId -
Int
|
|
derivedData -
DealOrContactDerivedDataType
|
|
userCanViewContact -
Boolean!
|
Indicates that the user making the request is the owner of the contact. |
Example
{
"id": ID,
"rowId": 123.45,
"company": "abc123",
"contactId": 987,
"created": DateTime,
"email": "abc123",
"firstName": "abc123",
"jobTitle": "abc123",
"linkedinProfileUrl": "abc123",
"lastName": "xyz789",
"phoneNumber": "abc123",
"tenantbaseId": 123,
"derivedData": DealOrContactDerivedDataType,
"userCanViewContact": true
}
BrokerDealAnonymousType
Type definition for Broker (assigned) Deal information
| Field Name | Description |
|---|---|
dealId -
Float!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
acceptanceStage -
DealHandoffAcceptanceStageEnum
|
|
advisors -
[AdvisorType!]!
|
|
bdrAdvisor -
AdvisorType
|
The advisor corresponding to the original BDR who handled the deal. |
claimedDate -
DateTime
|
|
closeDate -
DateTime
|
|
companyNumberOfEmployees -
DealNumberOfEmployeesEnum
|
The year that the tenant's company was founed. |
companyYearFounded -
Float
|
The year that the tenant's company was founded. |
completionPercentage -
Int!
|
The percentage of tenant profile fields the tenant has filled out. |
connectWithPartner -
Boolean!
|
Indicates that the tenant has explicitly opted in to being connected with a partner broker. |
contactdealId -
String!
|
|
created -
String!
|
|
dealAcceptedDaysAgo -
Int
|
The number of days since the deal was accepted. |
dealName -
String!
|
A public-facing anonymous name for the deal. This will not include the company name or any other private information. |
derivedData -
DealOrContactDerivedDataType
|
Rolled up and coalesced data related to a deal. This data will be stale on order of 10-30 minutes. |
desiredLocation -
String
|
|
hasOffers -
Boolean!
|
|
industry -
String
|
|
isEligibleForIntroductionRequest -
Boolean!
|
Indicates that the deal is generally eligible for introduction requests. If this is false, then no user could feasibly request an introduction. Whether any individual can request an introduction will depend on their subscription plan (and possibly other factors). |
isPublicAccess -
Boolean!
|
Indicates that this is a public marketing deal and that anonymized access to this deal is allowed for all users. This field should not be used to control access to information directly, but it can be used to trigger additional marketing CTAs on the site. |
isRepresented -
Boolean!
|
Indicates that at least one owner is a touring capable advisor. |
isRequirementVerified -
Boolean!
|
A deal is requirement verified if the stage is currently in opportunity or onwards. |
lastMovedStage -
DateTime
|
|
lastUpdated -
DateTime
|
When the deal was last updated. |
leaseStartDate -
String
|
|
leaseTerm -
DealLeaseTermEnum
|
The lease term desired by the user. |
leaseTermMonths -
Int
|
|
locations -
GeoJSONMultiPolygon
|
|
market -
MarketType
|
|
maturity -
String
|
|
pipelineStage -
String!
|
|
pipelineStageEnum -
DealPipelineStageTypeEnum
|
|
pipelineStageId -
String
|
|
pipelineStageLastConfirmedDate -
Date
|
The date of the last time that the deal's pipeline stage was either updated or that its broker confirmed that there has been no update. |
pipelineStageLastConfirmedDaysAgo -
Int
|
The number of days since the last time that the deal's pipeline stage was either updated or that its broker confirmed that there has been no update. |
proposalExpirationTime -
DateTime
|
The time at which the current proposed broker will no longer have the option to accept the deal. It will be proposed to a new broker at that point, or moved into the "not accepted" handoff acceptance stage if there are no other eligible brokers. |
proposedAdvisor -
AdvisorType
|
|
searchNotes -
String!
|
Notes about the deal and the search for space, formatted as markdown. These are the same notes that are sent to partner brokers before deals are accepted, so they do not include sensitive information about the company and contacts. They might include budget information however, and should not be shown to landlords. |
signUpSf -
String
|
|
spaceSizeHigh -
Float
|
|
spaceSizeLow -
Float
|
|
spaceType -
[DealSpaceTypeEnum!]!
|
The space types desired by the user. |
submarkets -
[SubmarketType!]!
|
|
tenantScore -
Float
|
The highest tenant score of a contact on a deal. |
tenantSearchTechnique -
[DealTenantSearchTechniqueEnum]!
|
The approaches that the tenant has been using to find space. |
tenantbaseUserIds -
[Int!]!
|
|
transactionType -
DealTransactionTypeEnum
|
What the user is looking to do with listings ( e.g. browse, lease, purchase). |
useOfSpace -
String
|
|
userCanAccess -
Boolean!
|
Indicates whether the user should be shown this deal. Deals returned in a queryset may be "stale" because of sync lag. For example, after a proposed owner rejects a deal they should not be able to access the deal, but our local table does not reflect that change, and the queryset still includes the deal. This "fresh" attribute provides the final word about deal visibility for a user. |
userCanAccessSensitiveInformation -
Boolean!
|
Indicates that the user has permission to access sensitive information about the deal. |
userCanCreateAccount -
Boolean!
|
Whether the user can create a user account to interact with the deal. |
userCanUpdate -
Boolean!
|
Indicates whether the user has permission to update the deal. |
userCorporateCtaPermissions -
CorporateDealCtaPermissions
|
User permissions for corporate-specific actions on a deal. |
userIsBdrOwner -
Boolean!
|
Indicates that the user making the request is the BDR owner of the deal. |
userLeasingCtaPermissions -
LeasingDealCtaPermissions
|
User permissions for leasing-specific actions on a deal. |
userTenantRepCtaPermissions -
TenantRepDealCtaPermissions
|
User permissions for TenantRep-specific actions on a deal. |
Example
{
"dealId": 987.65,
"id": ID,
"rowId": 123.45,
"acceptanceStage": DealHandoffAcceptanceStageEnum,
"advisors": [AdvisorType],
"bdrAdvisor": AdvisorType,
"claimedDate": DateTime,
"closeDate": DateTime,
"companyNumberOfEmployees": DealNumberOfEmployeesEnum,
"companyYearFounded": 123.45,
"completionPercentage": 987,
"connectWithPartner": true,
"contactdealId": "xyz789",
"created": "abc123",
"dealAcceptedDaysAgo": 123,
"dealName": "xyz789",
"derivedData": DealOrContactDerivedDataType,
"desiredLocation": "xyz789",
"hasOffers": true,
"industry": "xyz789",
"isEligibleForIntroductionRequest": false,
"isPublicAccess": true,
"isRepresented": false,
"isRequirementVerified": true,
"lastMovedStage": DateTime,
"lastUpdated": DateTime,
"leaseStartDate": "xyz789",
"leaseTerm": DealLeaseTermEnum,
"leaseTermMonths": 123,
"locations": GeoJSONMultiPolygon,
"market": MarketType,
"maturity": "abc123",
"pipelineStage": "xyz789",
"pipelineStageEnum": DealPipelineStageTypeEnum,
"pipelineStageId": "xyz789",
"pipelineStageLastConfirmedDate": "2025-06-04T21:37:37.477Z",
"pipelineStageLastConfirmedDaysAgo": 987,
"proposalExpirationTime": DateTime,
"proposedAdvisor": AdvisorType,
"searchNotes": "abc123",
"signUpSf": "xyz789",
"spaceSizeHigh": 987.65,
"spaceSizeLow": 987.65,
"spaceType": [DealSpaceTypeEnum],
"submarkets": [SubmarketType],
"tenantScore": 123.45,
"tenantSearchTechnique": [
DealTenantSearchTechniqueEnum
],
"tenantbaseUserIds": [123],
"transactionType": DealTransactionTypeEnum,
"useOfSpace": "xyz789",
"userCanAccess": true,
"userCanAccessSensitiveInformation": true,
"userCanCreateAccount": true,
"userCanUpdate": false,
"userCorporateCtaPermissions": CorporateDealCtaPermissions,
"userIsBdrOwner": false,
"userLeasingCtaPermissions": LeasingDealCtaPermissions,
"userTenantRepCtaPermissions": TenantRepDealCtaPermissions
}
BrokerDealSensitiveType
Type definition for Broker (assigned) Deal information
| Field Name | Description |
|---|---|
dealId -
Float!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
acceptanceStage -
DealHandoffAcceptanceStageEnum
|
|
advisors -
[AdvisorType!]!
|
|
bdrAdvisor -
AdvisorType
|
The advisor corresponding to the original BDR who handled the deal. |
claimedDate -
DateTime
|
|
closeDate -
DateTime
|
|
companyNumberOfEmployees -
DealNumberOfEmployeesEnum
|
The year that the tenant's company was founed. |
companyYearFounded -
Float
|
The year that the tenant's company was founded. |
completionPercentage -
Int!
|
The percentage of tenant profile fields the tenant has filled out. |
connectWithPartner -
Boolean!
|
Indicates that the tenant has explicitly opted in to being connected with a partner broker. |
contactdealId -
String!
|
|
created -
String!
|
|
dealAcceptedDaysAgo -
Int
|
The number of days since the deal was accepted. |
dealName -
String!
|
A public-facing anonymous name for the deal. This will not include the company name or any other private information. |
derivedData -
DealOrContactDerivedDataType
|
Rolled up and coalesced data related to a deal. This data will be stale on order of 10-30 minutes. |
desiredLocation -
String
|
|
hasOffers -
Boolean!
|
|
industry -
String
|
|
isEligibleForIntroductionRequest -
Boolean!
|
Indicates that the deal is generally eligible for introduction requests. If this is false, then no user could feasibly request an introduction. Whether any individual can request an introduction will depend on their subscription plan (and possibly other factors). |
isPublicAccess -
Boolean!
|
Indicates that this is a public marketing deal and that anonymized access to this deal is allowed for all users. This field should not be used to control access to information directly, but it can be used to trigger additional marketing CTAs on the site. |
isRepresented -
Boolean!
|
Indicates that at least one owner is a touring capable advisor. |
isRequirementVerified -
Boolean!
|
A deal is requirement verified if the stage is currently in opportunity or onwards. |
lastMovedStage -
DateTime
|
|
lastUpdated -
DateTime
|
When the deal was last updated. |
leaseStartDate -
String
|
|
leaseTerm -
DealLeaseTermEnum
|
The lease term desired by the user. |
leaseTermMonths -
Int
|
|
locations -
GeoJSONMultiPolygon
|
|
market -
MarketType
|
|
maturity -
String
|
|
pipelineStage -
String!
|
|
pipelineStageEnum -
DealPipelineStageTypeEnum
|
|
pipelineStageId -
String
|
|
pipelineStageLastConfirmedDate -
Date
|
The date of the last time that the deal's pipeline stage was either updated or that its broker confirmed that there has been no update. |
pipelineStageLastConfirmedDaysAgo -
Int
|
The number of days since the last time that the deal's pipeline stage was either updated or that its broker confirmed that there has been no update. |
proposalExpirationTime -
DateTime
|
The time at which the current proposed broker will no longer have the option to accept the deal. It will be proposed to a new broker at that point, or moved into the "not accepted" handoff acceptance stage if there are no other eligible brokers. |
proposedAdvisor -
AdvisorType
|
|
searchNotes -
String!
|
Notes about the deal and the search for space, formatted as markdown. These are the same notes that are sent to partner brokers before deals are accepted, so they do not include sensitive information about the company and contacts. They might include budget information however, and should not be shown to landlords. |
signUpSf -
String
|
|
spaceSizeHigh -
Float
|
|
spaceSizeLow -
Float
|
|
spaceType -
[DealSpaceTypeEnum!]!
|
The space types desired by the user. |
submarkets -
[SubmarketType!]!
|
|
tenantScore -
Float
|
The highest tenant score of a contact on a deal. |
tenantSearchTechnique -
[DealTenantSearchTechniqueEnum]!
|
The approaches that the tenant has been using to find space. |
tenantbaseUserIds -
[Int!]!
|
|
transactionType -
DealTransactionTypeEnum
|
What the user is looking to do with listings ( e.g. browse, lease, purchase). |
useOfSpace -
String
|
|
userCanAccess -
Boolean!
|
Indicates whether the user should be shown this deal. Deals returned in a queryset may be "stale" because of sync lag. For example, after a proposed owner rejects a deal they should not be able to access the deal, but our local table does not reflect that change, and the queryset still includes the deal. This "fresh" attribute provides the final word about deal visibility for a user. |
userCanAccessSensitiveInformation -
Boolean!
|
Indicates that the user has permission to access sensitive information about the deal. |
userCanCreateAccount -
Boolean!
|
Whether the user can create a user account to interact with the deal. |
userCanUpdate -
Boolean!
|
Indicates whether the user has permission to update the deal. |
userCorporateCtaPermissions -
CorporateDealCtaPermissions
|
User permissions for corporate-specific actions on a deal. |
userIsBdrOwner -
Boolean!
|
Indicates that the user making the request is the BDR owner of the deal. |
userLeasingCtaPermissions -
LeasingDealCtaPermissions
|
User permissions for leasing-specific actions on a deal. |
userTenantRepCtaPermissions -
TenantRepDealCtaPermissions
|
User permissions for TenantRep-specific actions on a deal. |
additionalResearch -
String!
|
Additional research and notes about the deal, formatted as markdown. This research can often include sensitive information about the company and contacts, so care should be taken to not display it to brokers before deal handoff. |
amount -
Float
|
|
brokerTeam -
BrokerTeamType
|
The team associated with the deal. |
company -
String
|
The name of the company associated with this deal. |
companyWebsite -
String
|
The website of the company associated with this deal. |
contacts -
[BrokerContactType!]!
|
|
internalDealName -
String
|
|
monthlyBudget -
Float
|
The best estimate of a monthly budget for the deal. |
monthlyBudgetHigh -
Float
|
|
monthlyBudgetLow -
Float
|
|
referralType -
DealReferralTypeEnum
|
|
users -
[BrokerUserType!]!
|
Example
{
"dealId": 987.65,
"id": ID,
"rowId": 987.65,
"acceptanceStage": DealHandoffAcceptanceStageEnum,
"advisors": [AdvisorType],
"bdrAdvisor": AdvisorType,
"claimedDate": DateTime,
"closeDate": DateTime,
"companyNumberOfEmployees": DealNumberOfEmployeesEnum,
"companyYearFounded": 987.65,
"completionPercentage": 987,
"connectWithPartner": false,
"contactdealId": "abc123",
"created": "abc123",
"dealAcceptedDaysAgo": 123,
"dealName": "abc123",
"derivedData": DealOrContactDerivedDataType,
"desiredLocation": "abc123",
"hasOffers": false,
"industry": "abc123",
"isEligibleForIntroductionRequest": true,
"isPublicAccess": true,
"isRepresented": false,
"isRequirementVerified": true,
"lastMovedStage": DateTime,
"lastUpdated": DateTime,
"leaseStartDate": "xyz789",
"leaseTerm": DealLeaseTermEnum,
"leaseTermMonths": 987,
"locations": GeoJSONMultiPolygon,
"market": MarketType,
"maturity": "abc123",
"pipelineStage": "xyz789",
"pipelineStageEnum": DealPipelineStageTypeEnum,
"pipelineStageId": "xyz789",
"pipelineStageLastConfirmedDate": "2025-06-04T21:37:37.477Z",
"pipelineStageLastConfirmedDaysAgo": 987,
"proposalExpirationTime": DateTime,
"proposedAdvisor": AdvisorType,
"searchNotes": "abc123",
"signUpSf": "xyz789",
"spaceSizeHigh": 123.45,
"spaceSizeLow": 987.65,
"spaceType": [DealSpaceTypeEnum],
"submarkets": [SubmarketType],
"tenantScore": 987.65,
"tenantSearchTechnique": [
DealTenantSearchTechniqueEnum
],
"tenantbaseUserIds": [987],
"transactionType": DealTransactionTypeEnum,
"useOfSpace": "abc123",
"userCanAccess": true,
"userCanAccessSensitiveInformation": true,
"userCanCreateAccount": true,
"userCanUpdate": false,
"userCorporateCtaPermissions": CorporateDealCtaPermissions,
"userIsBdrOwner": false,
"userLeasingCtaPermissions": LeasingDealCtaPermissions,
"userTenantRepCtaPermissions": TenantRepDealCtaPermissions,
"additionalResearch": "xyz789",
"amount": 123.45,
"brokerTeam": BrokerTeamType,
"company": "xyz789",
"companyWebsite": "abc123",
"contacts": [BrokerContactType],
"internalDealName": "xyz789",
"monthlyBudget": 123.45,
"monthlyBudgetHigh": 987.65,
"monthlyBudgetLow": 987.65,
"referralType": DealReferralTypeEnum,
"users": [BrokerUserType]
}
BrokerServiceTierEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BrokerTeamMemberType
Type definition for a Broker Team Member.
| Field Name | Description |
|---|---|
isAdmin -
Boolean!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
advisor -
AdvisorType
|
|
email -
String!
|
|
firstName -
String!
|
|
fullName -
String!
|
|
lastName -
String!
|
|
permissions -
[BrokerTeamPermissionsType!]!
|
|
phoneNumber -
String!
|
|
photoUrl -
String!
|
|
serviceTier -
BrokerServiceTierEnum!
|
Example
{
"isAdmin": true,
"id": ID,
"rowId": 123.45,
"advisor": AdvisorType,
"email": "abc123",
"firstName": "abc123",
"fullName": "abc123",
"lastName": "abc123",
"permissions": [BrokerTeamPermissionsType],
"phoneNumber": "abc123",
"photoUrl": "xyz789",
"serviceTier": BrokerServiceTierEnum
}
BrokerTeamPermissionsType
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
BrokerTeamType
Type definition for a Broker Team.
| Field Name | Description |
|---|---|
name -
String!
|
The name of the organization |
url -
String!
|
|
description -
String
|
|
serviceTier -
BrokerServiceTierEnum!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
hasBillingCustomer -
Boolean
|
|
billingSubscription -
BillingSubscriptionType
|
|
logoUrl -
String
|
|
subscriptionPlan -
SubscriptionPlanType!
|
The subscription plan and usage details associated with this specific team and user. |
teamMembers -
[BrokerTeamMemberType!]!
|
|
userCanStartFreeTrial -
Boolean!
|
The user can start a free trial for this team. |
userIsAdmin -
Boolean!
|
Whether the user making the request is an admin on this team. Also returns true for corporate users because they have admin privileges on all teams. |
Example
{
"name": "abc123",
"url": "xyz789",
"description": "xyz789",
"serviceTier": BrokerServiceTierEnum,
"id": ID,
"rowId": 987.65,
"hasBillingCustomer": true,
"billingSubscription": BillingSubscriptionType,
"logoUrl": "xyz789",
"subscriptionPlan": SubscriptionPlanType,
"teamMembers": [BrokerTeamMemberType],
"userCanStartFreeTrial": false,
"userIsAdmin": true
}
BrokerUserType
Type definition for a Broker User.
| Field Name | Description |
|---|---|
firstName -
String!
|
|
lastName -
String!
|
|
email -
String!
|
|
dateJoined -
DateTime!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
alertPreference -
AlertPreferenceType
|
|
company -
String!
|
|
contact -
BrokerContactType
|
|
contactPreference -
BrokerUserContactPreferenceType!
|
|
fullName -
String!
|
|
hubspotContactDetailUrl -
String
|
|
hubspotVid -
Float
|
|
phoneNumber -
String!
|
|
searchParameters -
SearchParametersType
|
|
countBuildingView -
Int!
|
|
countFavorite -
Int!
|
|
countInfoRequest -
Int!
|
|
countRecommendation -
Int!
|
|
countTour -
Int!
|
|
latestActivity -
DateTime
|
|
latestBuildingView -
DateTime
|
|
latestFavorite -
DateTime
|
|
latestInfoRequest -
DateTime
|
|
latestRecommendation -
DateTime
|
|
latestTour -
DateTime
|
Example
{
"firstName": "abc123",
"lastName": "abc123",
"email": "xyz789",
"dateJoined": DateTime,
"id": ID,
"rowId": 987.65,
"alertPreference": AlertPreferenceType,
"company": "abc123",
"contact": BrokerContactType,
"contactPreference": BrokerUserContactPreferenceType,
"fullName": "xyz789",
"hubspotContactDetailUrl": "abc123",
"hubspotVid": 123.45,
"phoneNumber": "xyz789",
"searchParameters": SearchParametersType,
"countBuildingView": 123,
"countFavorite": 123,
"countInfoRequest": 987,
"countRecommendation": 987,
"countTour": 123,
"latestActivity": DateTime,
"latestBuildingView": DateTime,
"latestFavorite": DateTime,
"latestInfoRequest": DateTime,
"latestRecommendation": DateTime,
"latestTour": DateTime
}
BuildingAccess
An enumeration.
| Enum Value | Description |
|---|---|
|
|
Call For Showing |
|
|
Lockbox and Code |
|
|
Lockbox and Key |
|
|
Leasing Manager On-site |
|
|
Key at Leasing Office |
|
|
Open During Business Hours |
|
|
Other |
BuildingPhotoType
| Field Name | Description |
|---|---|
created -
DateTime!
|
|
source -
String
|
|
sourceId -
String
|
|
sortOrder -
Int!
|
|
weOriginated -
Boolean!
|
|
hidden -
Boolean!
|
|
photoFile -
String!
|
|
rowId -
Float!
|
|
id -
Int!
|
|
isApproved -
Boolean
|
|
isHidden -
Boolean!
|
|
photoSrcSet -
String!
|
A sequence of image URL/width pairs formatted for use as a srcset attribute on an img tag for responsive image fetching. For example,'small.jpg 50w,medium.jpg 100w,big.jpg 100w'. |
photoUrl -
String!
|
|
|
Arguments
|
|
photoUrlCard -
String!
|
|
photoUrlLightbox -
String!
|
|
photoUrlThumb -
String!
|
|
buildingId -
Int!
|
|
Example
{
"created": DateTime,
"source": "xyz789",
"sourceId": "xyz789",
"sortOrder": 987,
"weOriginated": true,
"hidden": false,
"photoFile": "xyz789",
"rowId": 987.65,
"id": 123,
"isApproved": false,
"isHidden": true,
"photoSrcSet": "abc123",
"photoUrl": "abc123",
"photoUrlCard": "xyz789",
"photoUrlLightbox": "xyz789",
"photoUrlThumb": "abc123",
"buildingId": 123
}
BuildingSearchScope
An enumeration.
| Enum Value | Description |
|---|---|
|
|
Broker Search |
|
|
Tenant Site |
|
|
Approved For Marketing |
BuildingType
| Field Name | Description |
|---|---|
id -
Int!
|
|
created -
DateTime!
|
|
modified -
DateTime!
|
|
name -
String!
|
|
website -
String!
|
A reference page with the building's suite availability, likely a page on the landlord's website. |
kind -
BuildingKind!
|
|
access -
BuildingAccess!
|
|
accessDetails -
String!
|
|
street -
String!
|
|
city -
String!
|
|
state -
String!
|
|
postalCode -
String!
|
|
location -
GeoJSONPoint!
|
|
boosted -
Int!
|
|
searchScope -
BuildingSearchScope!
|
|
duplicate -
Boolean!
|
|
rowId -
Float!
|
|
photos -
[BuildingPhotoType!]!
|
|
suites -
[SuiteType!]!
|
Example
{
"id": 123,
"created": DateTime,
"modified": DateTime,
"name": "abc123",
"website": "abc123",
"kind": BuildingKind,
"access": BuildingAccess,
"accessDetails": "xyz789",
"street": "abc123",
"city": "abc123",
"state": "xyz789",
"postalCode": "xyz789",
"location": GeoJSONPoint,
"boosted": 123,
"searchScope": BuildingSearchScope,
"duplicate": true,
"rowId": 987.65,
"photos": [BuildingPhotoType],
"suites": [SuiteType]
}
CorporateDealCtaPermissions
User permissions for renant-rep-specific actions on a deal.
| Field Name | Description |
|---|---|
dealId -
ID!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
canPropose -
Boolean!
|
Indicates whether the user can currently mark this deal as ready for handoff. This depends on both the user permissions and the current status of the deal. |
canRescind -
Boolean!
|
Indicates whether the user can currently rescind this deal from the broker who it was proposed to. This depends on both the user permissions and the current status of the deal. |
Example
{
"dealId": ID,
"id": ID,
"rowId": 123.45,
"canPropose": true,
"canRescind": true
}
CreateListingInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
listingData -
ListingCreateInput!
|
|
clientMutationId -
String
|
Example
{
"token": "abc123",
"listingData": ListingCreateInput,
"clientMutationId": "abc123"
}
CreateListingPayload
Create a new listing for suites in a building.
| Field Name | Description |
|---|---|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{"listing": ListingType, "clientMutationId": "abc123"}
CreateListingSuiteInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
listingData -
ListingCreateSuiteInput!
|
|
clientMutationId -
String
|
Example
{
"token": "abc123",
"listingData": ListingCreateSuiteInput,
"clientMutationId": "xyz789"
}
CreateListingSuitePayload
Create a new suite for an existing listing.
| Field Name | Description |
|---|---|
suite -
SuiteType!
|
|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{
"suite": SuiteType,
"listing": ListingType,
"clientMutationId": "abc123"
}
CreateManagedUserInput
| Input Field | Description |
|---|---|
company -
String!
|
The name of the user's company. |
email -
String!
|
The user's email address. This will be stored in an obfuscated format and the user will never be emailed. |
externalId -
String!
|
A unique identifier for the user, such as the user's primary key from an external database. |
firstName -
String!
|
The user's first name. |
lastName -
String!
|
The user's last name. |
phoneNumber -
String!
|
The user's work phone number. |
clientMutationId -
String
|
Example
{
"company": "abc123",
"email": "abc123",
"externalId": "xyz789",
"firstName": "abc123",
"lastName": "abc123",
"phoneNumber": "xyz789",
"clientMutationId": "abc123"
}
CreateOfferInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
offerData -
OfferCreateInput!
|
|
clientMutationId -
String
|
Example
{
"token": "xyz789",
"offerData": OfferCreateInput,
"clientMutationId": "abc123"
}
CreateOfferPayload
Create an offer based on specified Deal and Listing.
| Field Name | Description |
|---|---|
offer -
LandlordOfferType!
|
|
clientMutationId -
String
|
Example
{"offer": LandlordOfferType, "clientMutationId": "abc123"}
CreateTenantLeadInput
| Input Field | Description |
|---|---|
tenantLeadData -
TenantLeadCreateInput!
|
|
dryRun -
Boolean
|
Validate the tenant lead data without actually creating a lead. |
clientMutationId -
String
|
Example
{
"tenantLeadData": TenantLeadCreateInput,
"dryRun": true,
"clientMutationId": "abc123"
}
CreateTenantLeadPayload
Create a new tenant lead from partner referral.
| Field Name | Description |
|---|---|
tenantLead -
TenantLeadType!
|
|
clientMutationId -
String
|
Example
{
"tenantLead": TenantLeadType,
"clientMutationId": "abc123"
}
Date
The Date scalar type represents a Date value as specified by
iso8601.
Example
2025-06-04T21:37:37.477Z
DateTime
The DateTime scalar type represents a DateTime value as specified by
iso8601.
Example
object
DealHandoffAcceptanceStageEnum
Enumerates different stages of deal acceptance.
| Enum Value | Description |
|---|---|
|
|
The deal is ready to be assigned. |
|
|
The deal has been proposed to a broker for a handoff. |
|
|
The deal has been accepted by a broker and is now owned by them. |
|
|
The deal has been rejected by all eligible brokers and will not be automatically reassigned. |
DealLeaseTermEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DealNumberOfEmployeesEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DealOrContactDerivedDataType
Denormalized, coalesced, and rolled up deal or contact data sourced from Looker PDTs.
The fields on this interface can be resolved for either deals or contacts. They're meant as a convenience to reduce query complexity when accessing things like search requirements or site activity. These values will be stale by 10+ minutes, so only use them in situations where that doesn't matter.
| Field Name | Description |
|---|---|
id -
String!
|
An ID unique to the deal or contact object that can be used for caching. |
market -
MarketType
|
|
submarkets -
[SubmarketType!]!
|
|
tenantleadLocations -
[GeoJSONPoint!]!
|
|
favoritedBuildings -
[BuildingType!]!
|
|
infoRequestedBuildings -
[BuildingType!]!
|
|
recommendedBuildings -
[BuildingType!]!
|
|
tourRequestedBuildings -
[BuildingType!]!
|
|
viewedDetailBuildings -
[BuildingType!]!
|
|
viewedSearchBuildings -
[BuildingType!]!
|
|
spaceKinds -
[SuiteKindTypeEnum!]!
|
|
monthlyBudgetRange -
IntegerRangeType
|
|
sizeRange -
IntegerRangeType
|
Example
{
"id": "abc123",
"market": MarketType,
"submarkets": [SubmarketType],
"tenantleadLocations": [GeoJSONPoint],
"favoritedBuildings": [BuildingType],
"infoRequestedBuildings": [BuildingType],
"recommendedBuildings": [BuildingType],
"tourRequestedBuildings": [BuildingType],
"viewedDetailBuildings": [BuildingType],
"viewedSearchBuildings": [BuildingType],
"spaceKinds": [SuiteKindTypeEnum],
"monthlyBudgetRange": IntegerRangeType,
"sizeRange": IntegerRangeType
}
DealPipelineStageTypeEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DealSpaceTypeEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DealTenantSearchTechniqueEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DealTransactionTypeEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Float
The Float scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
987.65
FloorplanPhotoType
| Field Name | Description |
|---|---|
created -
DateTime!
|
|
source -
String
|
|
sourceId -
String
|
|
sortOrder -
Int!
|
|
hidden -
Boolean!
|
|
photoFile -
String!
|
|
rowId -
Float!
|
|
id -
Int!
|
|
isApproved -
Boolean
|
|
isHidden -
Boolean!
|
|
photoSrcSet -
String!
|
A sequence of image URL/width pairs formatted for use as a srcset attribute on an img tag for responsive image fetching. For example,'small.jpg 50w,medium.jpg 100w,big.jpg 100w'. |
photoUrl -
String!
|
|
|
Arguments
|
|
photoUrlLightbox -
String!
|
|
photoUrlThumb -
String!
|
|
Example
{
"created": DateTime,
"source": "xyz789",
"sourceId": "xyz789",
"sortOrder": 987,
"hidden": false,
"photoFile": "xyz789",
"rowId": 123.45,
"id": 123,
"isApproved": true,
"isHidden": false,
"photoSrcSet": "abc123",
"photoUrl": "abc123",
"photoUrlLightbox": "xyz789",
"photoUrlThumb": "xyz789"
}
GenericScalar
The GenericScalar scalar type represents a generic GraphQL scalar value that could be: String, Boolean, Int, Float, List or Object.
Example
object
HidePhotoInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
photoData -
PhotoUpdateInput!
|
|
listingId -
Int!
|
|
clientMutationId -
String
|
Example
{
"token": "xyz789",
"photoData": PhotoUpdateInput,
"listingId": 987,
"clientMutationId": "xyz789"
}
HidePhotoPayload
Update either a building, suite, or floorplan photo.
| Field Name | Description |
|---|---|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{"listing": ListingType, "clientMutationId": "xyz789"}
ID
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
object
ImageSizeAliasEnum
An enumeration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Int
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31 - 1) and 2^31 - 1 since represented in JSON as double-precision floating point numbers specifiedby
IEEE 754.
Example
987
LandlordOfferType
Type definition for landlord Offer information
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
comments -
String!
|
|
created -
DateTime!
|
|
listing -
ListingType
|
|
offerId -
Int!
|
|
modified -
DateTime!
|
|
messages -
[MessageType!]!
|
All messages sent as part of the offer conversation. Ordered from oldest to newest. |
responderOpenCount -
Int!
|
The number of times that a tenant or broker has opened the email outreach. |
responderReplyCount -
Int!
|
The number of times that a tenant or broker has replied to the email outreach. |
Example
{
"id": ID,
"rowId": 123.45,
"comments": "xyz789",
"created": DateTime,
"listing": ListingType,
"offerId": 123,
"modified": DateTime,
"messages": [MessageType],
"responderOpenCount": 987,
"responderReplyCount": 123
}
LeasingDealCtaPermissions
User permissions for leasing-specific actions on a deal.
| Field Name | Description |
|---|---|
dealId -
ID!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
canActivateToSubmitOffer -
Boolean!
|
The user can activate their account to make an Offer/"Space Proposal". |
canContactBroker -
Boolean!
|
The user has permission to view the contact information of the tenant representative. |
canCreateAccount -
Boolean!
|
The user is able to sign up for a leasing account in order to take actions. |
canStartFreeTrialToSubmitOffer -
Boolean!
|
The user can start a free trial to gain access to submit an offer. This does not necessarily mean they have permission to update billing, but we still want to show them a CTA to start the trial so they can talk to their team admin about it. |
canSubmitOffer -
Boolean!
|
The user has permission to submit an Offer/"Space Proposal" for this deal. |
canUpgradeToSubmitOffer -
Boolean!
|
The user can upgrade their account to make an Offer/"Space Proposal". |
hasSubmittedOffer -
Boolean!
|
The user has already submitted an Offer/"Space Proposal" for this deal. |
Example
{
"dealId": ID,
"id": ID,
"rowId": 987.65,
"canActivateToSubmitOffer": false,
"canContactBroker": false,
"canCreateAccount": true,
"canStartFreeTrialToSubmitOffer": true,
"canSubmitOffer": false,
"canUpgradeToSubmitOffer": true,
"hasSubmittedOffer": false
}
LeasingListingType
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
listingType -
ListingTypeEnum!
|
|
publicNotes -
String!
|
|
privateNotes -
String!
|
|
created -
DateTime!
|
|
uuid -
String!
|
|
building -
BuildingType!
|
|
latestSource -
ListingLatestSource!
|
|
website -
String!
|
A reference page with the listing's suite availability, likely a page on the landlord's website. |
access -
ListingAccessTypeEnum!
|
|
accessDetails -
String!
|
|
searchScope -
String!
|
|
rowId -
Float!
|
|
agents -
[ListingAgentType!]!
|
|
brochures -
[ListingBrochureType!]!
|
|
suites -
[SuiteType!]!
|
|
latestSuiteAvailability -
String
|
|
dealsWithInterest -
[LeasingDealConnection!]!
|
|
dealsWithViews -
[LeasingDealConnection!]!
|
|
hasHadDealListingMatches -
Boolean!
|
|
offers -
[LandlordOfferType!]!
|
|
recommendedDeals -
[LeasingDealConnection!]!
|
Example
{
"id": ID,
"listingType": ListingTypeEnum,
"publicNotes": "abc123",
"privateNotes": "xyz789",
"created": DateTime,
"uuid": "abc123",
"building": BuildingType,
"latestSource": ListingLatestSource,
"website": "xyz789",
"access": ListingAccessTypeEnum,
"accessDetails": "xyz789",
"searchScope": "xyz789",
"rowId": 987.65,
"agents": [ListingAgentType],
"brochures": [ListingBrochureType],
"suites": [SuiteType],
"latestSuiteAvailability": "abc123",
"dealsWithInterest": [LeasingDealConnection],
"dealsWithViews": [LeasingDealConnection],
"hasHadDealListingMatches": true,
"offers": [LandlordOfferType],
"recommendedDeals": [LeasingDealConnection]
}
LeasingListingTypeConnection
Return listings related to user via ListingClaim
| Field Name | Description |
|---|---|
pageInfo -
PageInfo!
|
Pagination data for this connection. |
edges -
[LeasingListingTypeEdge]!
|
Contains the nodes in this connection. |
totalCount -
Int
|
Number of items in the queryset. |
Example
{
"pageInfo": PageInfo,
"edges": [LeasingListingTypeEdge],
"totalCount": 987
}
LeasingListingTypeEdge
A Relay edge containing a LeasingListingType and its cursor.
| Field Name | Description |
|---|---|
node -
LeasingListingType
|
The item at the end of the edge |
cursor -
String!
|
A cursor for use in pagination |
Example
{"node": LeasingListingType, "cursor": "xyz789"}
LeasingProfileType
Fields related to a user's leasing profile.
| Field Name | Description |
|---|---|
firstName -
String!
|
|
lastName -
String!
|
|
email -
String!
|
|
dateJoined -
DateTime!
|
|
id -
ID!
|
The ID of the object. |
password -
String!
|
|
lastLogin -
DateTime
|
|
isSuperuser -
Boolean!
|
Designates that this user has all permissions without explicitly assigning them. |
username -
String!
|
Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. |
isStaff -
Boolean!
|
Designates whether the user can log into this admin site. |
isActive -
Boolean!
|
Designates whether this user should be treated as active. Unselect this instead of deleting accounts. |
buildingphotoSet -
[BuildingPhotoType!]!
|
|
suitephotoSet -
[SuitePhotoType!]!
|
|
floorplanphotoSet -
[FloorplanPhotoType!]!
|
|
searchparameters -
SearchParametersType
|
|
advisor -
AdvisorType
|
|
offerfeedbackSet -
[OfferFeedbackType!]!
|
|
alertpreference -
AlertPreferenceType
|
|
leasingusermarketassociation -
LeasingUserMarketAssociationType
|
|
leasingalertpreference -
LeasingAlertPreferenceType
|
|
tenantleadSet -
TenantLeadTypeConnection!
|
|
rowId -
Float!
|
|
isBuildoutSyndicated -
Boolean!
|
Indicates the user has syndicated with Buildout. |
marketAssociation -
LeasingUserMarketAssociationType
|
The user's association with a market on the leasing site. |
Example
{
"firstName": "xyz789",
"lastName": "abc123",
"email": "abc123",
"dateJoined": DateTime,
"id": ID,
"password": "abc123",
"lastLogin": DateTime,
"isSuperuser": false,
"username": "xyz789",
"isStaff": false,
"isActive": false,
"buildingphotoSet": [BuildingPhotoType],
"suitephotoSet": [SuitePhotoType],
"floorplanphotoSet": [FloorplanPhotoType],
"searchparameters": SearchParametersType,
"advisor": AdvisorType,
"offerfeedbackSet": [OfferFeedbackType],
"alertpreference": AlertPreferenceType,
"leasingusermarketassociation": LeasingUserMarketAssociationType,
"leasingalertpreference": LeasingAlertPreferenceType,
"tenantleadSet": TenantLeadTypeConnection,
"rowId": 123.45,
"isBuildoutSyndicated": true,
"marketAssociation": LeasingUserMarketAssociationType
}
LeasingUserMarketAssociationType
Association between a leasing user and a market.
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
inActiveMarket -
Boolean!
|
Indicates that the user is associated with a public market. |
market -
MarketType
|
The market associated with the leasing user. |
otherMarket -
String
|
A text label of the market if it doesn't match one in the database. |
user -
UserType!
|
The leasing user. |
userCanEdit -
Boolean!
|
Indicates the user has permission to change the associated market. |
Example
{
"id": ID,
"rowId": 987.65,
"inActiveMarket": false,
"market": MarketType,
"otherMarket": "xyz789",
"user": UserType,
"userCanEdit": true
}
ListingAccessTypeEnum
| Enum Value | Description |
|---|---|
|
|
Call For Showing |
|
|
Lockbox and Code |
|
|
Lockbox and Key |
|
|
Leasing Manager On-site |
|
|
Key at Leasing Office |
|
|
Open During Business Hours |
|
|
Other |
ListingAgentType
| Field Name | Description |
|---|---|
id -
ID!
|
|
listing -
LeasingListingType!
|
|
primary -
Boolean!
|
|
rowId -
Float!
|
|
company -
CompanyType
|
|
contactType -
String!
|
|
contactedBy -
Int!
|
|
dateLastContacted -
String!
|
|
email -
String
|
|
isPrimary -
Boolean!
|
|
name -
String!
|
|
phone -
String!
|
|
user -
Int!
|
Example
{
"id": ID,
"listing": LeasingListingType,
"primary": true,
"rowId": 123.45,
"company": CompanyType,
"contactType": "xyz789",
"contactedBy": 987,
"dateLastContacted": "abc123",
"email": "abc123",
"isPrimary": true,
"name": "xyz789",
"phone": "xyz789",
"user": 123
}
ListingCreateInput
| Field Name | Description |
|---|---|
access -
ListingAccessTypeEnum default = "\"Call For Showing\"" |
|
accessDetails -
String default = "" |
|
agents -
[AgentCreateInput] default = [] |
|
building -
BuildingInput!
|
|
listingType -
ListingTypeEnum default = "\"Direct Lease\"" |
|
publicNotes -
String default = "" |
|
searchScope -
String default = "tenant_site" |
|
suites -
[SuiteCreateInput!] default = [] |
|
website -
String default = "" |
Example
{
"access": "\"Call For Showing\"",
"accessDetails": "",
"agents": [],
"building": BuildingInput,
"listingType": "\"Direct Lease\"",
"publicNotes": "",
"searchScope": "tenant_site",
"suites": [],
"website": ""
}
ListingCreateSuiteInput
| Input Field | Description |
|---|---|
id -
Int!
|
|
suiteData -
SuiteCreateInput!
|
Example
{"id": 123, "suiteData": SuiteCreateInput}
ListingLatestSource
An enumeration.
| Enum Value | Description |
|---|---|
|
|
Listing Broker / Owner |
|
|
Marketing email blast |
|
|
BuildOut |
|
|
IWG / Regus |
|
|
Company website |
|
|
Versionista |
|
|
Leasing Portal |
|
|
TenantBoard Submission |
|
|
42Floors |
|
|
AIR CRE |
|
|
Boxer |
|
|
CREXi |
|
|
Yardi Matrix |
|
|
CommGate |
|
|
Catylist |
|
|
MLS |
|
|
TenantBase Broker |
|
|
News Story / Press Release |
|
|
Inventory |
|
|
Correction/Audits |
|
|
Unknown |
|
|
Test |
ListingType
| Field Name | Description |
|---|---|
id -
ID!
|
|
listingType -
ListingTypeEnum!
|
|
publicNotes -
String!
|
|
privateNotes -
String!
|
|
created -
DateTime!
|
|
uuid -
String!
|
|
building -
BuildingType!
|
|
latestSource -
ListingLatestSource!
|
|
website -
String!
|
A reference page with the listing's suite availability, likely a page on the landlord's website. |
access -
ListingAccessTypeEnum!
|
|
accessDetails -
String!
|
|
searchScope -
String!
|
|
rowId -
Float!
|
|
agents -
[ListingAgentType!]!
|
|
brochures -
[ListingBrochureType!]!
|
|
suites -
[SuiteType!]!
|
|
latestSuiteAvailability -
String
|
Example
{
"id": ID,
"listingType": ListingTypeEnum,
"publicNotes": "abc123",
"privateNotes": "xyz789",
"created": DateTime,
"uuid": "xyz789",
"building": BuildingType,
"latestSource": ListingLatestSource,
"website": "xyz789",
"access": ListingAccessTypeEnum,
"accessDetails": "xyz789",
"searchScope": "abc123",
"rowId": 123.45,
"agents": [ListingAgentType],
"brochures": [ListingBrochureType],
"suites": [SuiteType],
"latestSuiteAvailability": "xyz789"
}
ListingTypeEnum
| Enum Value | Description |
|---|---|
|
|
Direct Lease |
|
|
Sublease |
|
|
Co-Working |
|
|
Sale |
ListingUpdateInput
| Input Field | Description |
|---|---|
id -
Int!
|
|
access -
ListingAccessTypeEnum
|
|
accessDetails -
String
|
|
building -
BuildingUpdateInput
|
|
listingType -
ListingTypeEnum
|
|
publicNotes -
String
|
|
searchScope -
String
|
|
website -
String
|
Example
{
"id": 123,
"access": ListingAccessTypeEnum,
"accessDetails": "abc123",
"building": BuildingUpdateInput,
"listingType": ListingTypeEnum,
"publicNotes": "xyz789",
"searchScope": "xyz789",
"website": "xyz789"
}
ManagedPartnerUserType
| Field Name | Description |
|---|---|
firstName -
String!
|
|
lastName -
String!
|
|
email -
String!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
externalId -
String
|
|
partnerSource -
String
|
Example
{
"firstName": "abc123",
"lastName": "xyz789",
"email": "xyz789",
"id": ID,
"rowId": 123.45,
"externalId": "xyz789",
"partnerSource": "abc123"
}
ManagedPartnerUserTypeConnection
| Field Name | Description |
|---|---|
pageInfo -
PageInfo!
|
Pagination data for this connection. |
edges -
[ManagedPartnerUserTypeEdge]!
|
Contains the nodes in this connection. |
Example
{
"pageInfo": PageInfo,
"edges": [ManagedPartnerUserTypeEdge]
}
ManagedPartnerUserTypeEdge
A Relay edge containing a ManagedPartnerUserType and its cursor.
| Field Name | Description |
|---|---|
node -
ManagedPartnerUserType
|
The item at the end of the edge |
cursor -
String!
|
A cursor for use in pagination |
Example
{"node": ManagedPartnerUserType, "cursor": "xyz789"}
MarketState
An enumeration.
| Enum Value | Description |
|---|---|
|
|
Alabama |
|
|
Alaska |
|
|
American Samoa |
|
|
Arizona |
|
|
Arkansas |
|
|
Armed Forces Americas |
|
|
Armed Forces Europe |
|
|
Armed Forces Pacific |
|
|
California |
|
|
Colorado |
|
|
Connecticut |
|
|
Delaware |
|
|
District of Columbia |
|
|
Florida |
|
|
Georgia |
|
|
Guam |
|
|
Hawaii |
|
|
Idaho |
|
|
Illinois |
|
|
Indiana |
|
|
Iowa |
|
|
Kansas |
|
|
Kentucky |
|
|
Louisiana |
|
|
Maine |
|
|
Maryland |
|
|
Massachusetts |
|
|
Michigan |
|
|
Minnesota |
|
|
Mississippi |
|
|
Missouri |
|
|
Montana |
|
|
Nebraska |
|
|
Nevada |
|
|
New Hampshire |
|
|
New Jersey |
|
|
New Mexico |
|
|
New York |
|
|
North Carolina |
|
|
North Dakota |
|
|
Northern Mariana Islands |
|
|
Ohio |
|
|
Oklahoma |
|
|
Oregon |
|
|
Pennsylvania |
|
|
Puerto Rico |
|
|
Rhode Island |
|
|
South Carolina |
|
|
South Dakota |
|
|
Tennessee |
|
|
Texas |
|
|
Utah |
|
|
Vermont |
|
|
Virgin Islands |
|
|
Virginia |
|
|
Washington |
|
|
West Virginia |
|
|
Wisconsin |
|
|
Wyoming |
|
|
Alberta |
|
|
British Columbia |
|
|
Manitoba |
|
|
New Brunswick |
|
|
Newfoundland and Labrador |
|
|
Northwest Territories |
|
|
Nova Scotia |
|
|
Nunavut |
|
|
Ontario |
|
|
Prince Edward Island |
|
|
Quebec |
|
|
Saskatchewan |
|
|
Yukon |
MarketType
TenantBase Representation of Active Markets
| Field Name | Description |
|---|---|
name -
String!
|
|
state -
MarketState!
|
|
bounds -
GeoJSONPolygon!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
photoFile -
String
|
|
photoUrl -
String
|
|
|
Arguments
|
|
Example
{
"name": "abc123",
"state": MarketState,
"bounds": GeoJSONPolygon,
"id": ID,
"rowId": 987.65,
"photoFile": "xyz789",
"photoUrl": "abc123"
}
MarketTypeConnection
| Field Name | Description |
|---|---|
pageInfo -
PageInfo!
|
Pagination data for this connection. |
edges -
[MarketTypeEdge]!
|
Contains the nodes in this connection. |
Example
{
"pageInfo": PageInfo,
"edges": [MarketTypeEdge]
}
MarketTypeEdge
A Relay edge containing a MarketType and its cursor.
| Field Name | Description |
|---|---|
node -
MarketType
|
The item at the end of the edge |
cursor -
String!
|
A cursor for use in pagination |
Example
{"node": MarketType, "cursor": "xyz789"}
MessageType
Represents an email message, typically sent as part of a conversation.
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
created -
DateTime!
|
The time at which the email was received. |
direction -
MessageDirectionEnum
|
The direction that the email was sent in the context of a proxy conversation. |
html -
String
|
The HTML content of the email. |
text -
String
|
The plain text content of the email. |
subject -
String!
|
The email subject. |
Example
{
"id": ID,
"rowId": 123.45,
"created": DateTime,
"direction": MessageDirectionEnum,
"html": "xyz789",
"text": "xyz789",
"subject": "abc123"
}
ObtainJSONWebTokenPayload
Obtain JSON Web Token mutation
| Field Name | Description |
|---|---|
payload -
GenericScalar!
|
|
refreshExpiresIn -
Int!
|
|
clientMutationId -
String
|
|
token -
String!
|
|
refreshToken -
String!
|
Example
{
"payload": GenericScalar,
"refreshExpiresIn": 987,
"clientMutationId": "xyz789",
"token": "abc123",
"refreshToken": "xyz789"
}
ObtainManagedJSONWebTokenPayload
Obtain JSON Web Token on behalf of a user mutation.
| Field Name | Description |
|---|---|
payload -
GenericScalar!
|
|
refreshExpiresIn -
Int!
|
|
clientMutationId -
String
|
|
token -
String!
|
|
refreshToken -
String!
|
Example
{
"payload": GenericScalar,
"refreshExpiresIn": 123,
"clientMutationId": "xyz789",
"token": "abc123",
"refreshToken": "xyz789"
}
OfferFeedbackType
Type definition for client Offer feedback
| Field Name | Description |
|---|---|
rowId -
Float!
|
|
id -
Int!
|
|
created -
DateTime!
|
|
modified -
DateTime!
|
|
response -
Int
|
|
responseText -
String!
|
|
toUserId -
Int!
|
|
viewed -
Boolean!
|
Example
{
"rowId": 123.45,
"id": 987,
"created": DateTime,
"modified": DateTime,
"response": 987,
"responseText": "xyz789",
"toUserId": 123,
"viewed": false
}
PageInfo
The Relay compliant PageInfo type, containing data necessary to paginate this connection.
| Field Name | Description |
|---|---|
hasNextPage -
Boolean!
|
When paginating forwards, are there more items? |
hasPreviousPage -
Boolean!
|
When paginating backwards, are there more items? |
startCursor -
String
|
When paginating backwards, the cursor to continue. |
endCursor -
String
|
When paginating forwards, the cursor to continue. |
Example
{
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "xyz789",
"endCursor": "abc123"
}
PartnerUserType
| Field Name | Description |
|---|---|
firstName -
String!
|
|
lastName -
String!
|
|
email -
String!
|
|
dateJoined -
DateTime!
|
|
id -
ID!
|
|
password -
String!
|
|
lastLogin -
DateTime
|
|
isSuperuser -
Boolean!
|
Designates that this user has all permissions without explicitly assigning them. |
username -
String!
|
Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. |
isStaff -
Boolean!
|
Designates whether the user can log into this admin site. |
isActive -
Boolean!
|
Designates whether this user should be treated as active. Unselect this instead of deleting accounts. |
buildingphotoSet -
[BuildingPhotoType!]!
|
|
suitephotoSet -
[SuitePhotoType!]!
|
|
floorplanphotoSet -
[FloorplanPhotoType!]!
|
|
searchparameters -
SearchParametersType
|
|
advisor -
AdvisorType
|
|
offerfeedbackSet -
[OfferFeedbackType!]!
|
|
alertpreference -
AlertPreferenceType
|
|
leasingusermarketassociation -
LeasingUserMarketAssociationType
|
|
leasingalertpreference -
LeasingAlertPreferenceType
|
|
tenantleadSet -
TenantLeadTypeConnection!
|
|
rowId -
Float!
|
|
Example
{
"firstName": "xyz789",
"lastName": "xyz789",
"email": "xyz789",
"dateJoined": DateTime,
"id": ID,
"password": "abc123",
"lastLogin": DateTime,
"isSuperuser": false,
"username": "abc123",
"isStaff": false,
"isActive": true,
"buildingphotoSet": [BuildingPhotoType],
"suitephotoSet": [SuitePhotoType],
"floorplanphotoSet": [FloorplanPhotoType],
"searchparameters": SearchParametersType,
"advisor": AdvisorType,
"offerfeedbackSet": [OfferFeedbackType],
"alertpreference": AlertPreferenceType,
"leasingusermarketassociation": LeasingUserMarketAssociationType,
"leasingalertpreference": LeasingAlertPreferenceType,
"tenantleadSet": TenantLeadTypeConnection,
"rowId": 123.45
}
PhotoSortInput
| Input Field | Description |
|---|---|
id -
Int!
|
|
photoType -
PhotoTypeEnum!
|
Example
{"id": 123, "photoType": PhotoTypeEnum}
PhotoUpdateInput
| Input Field | Description |
|---|---|
id -
Int!
|
|
photoType -
PhotoTypeEnum!
|
|
hidden -
Boolean!
|
Example
{"id": 987, "photoType": PhotoTypeEnum, "hidden": false}
RateType
TenantBase RateTypes have several components, specified in a GraphQL query, e.g.:
rate: {
rate_type: "NNN"
asking_rate: 500.0
pass_throughs: 5.2
}
NOTE: RateType field names are not camelCased like other GraphQL types.
RateType Fields
asking_rate- Float. The periodic $/sf/year rate for a lease.rate_type- String. The rate structure type of the lease."Flat"- Flat monthly rate for the suite, not on a per-sf basis. In $/month."Gross"- Gross, no passthroughs."IG"- Industrial Gross."IGUnknownPass"- Industrial Gross with unknown passthroughs."MG"- Modified Gross."MGUnknownPass"- Modified Gross with unknown passthroughs."Net"- Generic Net lease; unsure about the structure of the nets."NetUnknownPass"- Net with unknown passthroughs."N"- Single Net"NN"- Double Net"NNUnknownPass"- Double Net with unknown passthroughs."NNN"- Triple Net"NNNUnknownPass"- Triple Net with unknown passthroughs."PlusE"- Plus E."Unknown"- No rate information provided.
pass_throughs- Float. Costs of ownership passed through to tenant, in $/sf/year.total_rate- Float. The periodic $/month rate for a lease.
Table of RateType rate_types and their required "amount" fields
rate_type |
|||
|---|---|---|---|
"Flat" |
— | — | total_rate |
"Gross" |
asking_rate |
— | — |
"IG" |
asking_rate |
pass_throughs |
— |
"IGUnknownPass" |
asking_rate |
— | — |
"MG" |
asking_rate |
pass_throughs |
— |
"MGUnknownPass" |
asking_rate |
— | — |
"Net" |
asking_rate |
pass_throughs |
— |
"NetUnknownPass" |
asking_rate |
— | — |
"N" |
asking_rate |
pass_throughs |
— |
"NN" |
asking_rate |
pass_throughs |
— |
"NNUnknownPass" |
asking_rate |
— | — |
"NNN" |
asking_rate |
pass_throughs |
— |
"NNNUnknownPass" |
asking_rate |
— | — |
"PlusE" |
asking_rate |
— | — |
"Unknown" |
— | — | — |
"UnknownWithRate" |
asking_rate |
— | — |
NOTE: Non-required fields for each rate type will be ignored.
Example
object
RefreshPayload
| Field Name | Description |
|---|---|
payload -
GenericScalar!
|
|
refreshExpiresIn -
Int!
|
|
clientMutationId -
String
|
|
token -
String!
|
|
refreshToken -
String!
|
Example
{
"payload": GenericScalar,
"refreshExpiresIn": 987,
"clientMutationId": "abc123",
"token": "abc123",
"refreshToken": "xyz789"
}
RemoveListingInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
listingData -
IdRequiredInput!
|
|
clientMutationId -
String
|
Example
{
"token": "abc123",
"listingData": IdRequiredInput,
"clientMutationId": "xyz789"
}
RemoveListingPayload
Remove listing from user's inventory.
| Field Name | Description |
|---|---|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{"listing": ListingType, "clientMutationId": "abc123"}
SearchParametersFocusType
An enumeration.
| Enum Value | Description |
|---|---|
|
|
submarket |
|
|
coordinates |
SearchParametersLayout
An enumeration.
| Enum Value | Description |
|---|---|
|
|
Any |
|
|
Mostly office |
|
|
Half office |
|
|
Open |
SearchParametersType
Represents a user's alert preferences.
| Field Name | Description |
|---|---|
market -
MarketType!
|
|
focusType -
SearchParametersFocusType!
|
|
layout -
SearchParametersLayout!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
focusSubmarkets -
[SubmarketType!]!
|
|
kind -
[SuiteKindLegacyType!]!
|
|
monthlyBudgetRange -
IntegerRangeType
|
|
officeCountRange -
IntegerRangeType
|
|
sizeRange -
IntegerRangeType
|
Example
{
"market": MarketType,
"focusType": SearchParametersFocusType,
"layout": SearchParametersLayout,
"id": ID,
"rowId": 987.65,
"focusSubmarkets": [SubmarketType],
"kind": [SuiteKindLegacyType],
"monthlyBudgetRange": IntegerRangeType,
"officeCountRange": IntegerRangeType,
"sizeRange": IntegerRangeType
}
SortPhotosInput
| Field Name | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
photos -
[PhotoSortInput]
|
|
listingId -
Int!
|
|
clientMutationId -
String
|
Example
{
"token": "abc123",
"photos": [PhotoSortInput],
"listingId": 123,
"clientMutationId": "abc123"
}
SortPhotosPayload
Sort either building, suite, or floorplan photos.
| Field Name | Description |
|---|---|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{"listing": ListingType, "clientMutationId": "abc123"}
String
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
SubmarketType
Represents a submarket within a market.
| Field Name | Description |
|---|---|
market -
MarketType!
|
|
name -
String!
|
|
bounds -
GeoJSONPolygon!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
Example
{
"market": MarketType,
"name": "xyz789",
"bounds": GeoJSONPolygon,
"id": ID,
"rowId": 987.65
}
SubscriptionPlanType
| Field Name | Description |
|---|---|
automaticIntroductionRequestsEnabled -
Boolean!
|
Whether the automatic introduction request feature is enabled for the user. |
automaticIntroductionRequestsEnabledCanUpgrade -
Boolean!
|
Whether the user can upgrade to enable automatic introduction requests. |
brokerTeam -
BrokerTeamType!
|
The broker team associated with this subscription plan. |
chatTbCanAccess -
Boolean!
|
Whether the user can access the ChatTB chat assistant. |
directAssignmentEnabled -
Boolean!
|
Whether the direct deal assignment feature is enabled for the user. |
introductionRequestsAreAllowedCanActivate -
Boolean!
|
Whether the user is currently able to activate their account to request an introduction. |
introductionRequestsAreAllowedCanUpgrade -
Boolean!
|
Whether the user is currently able to upgrade to request an introduction. |
id -
String!
|
An ID unique to the user and team that can be used for caching. |
listingsAreBoosted -
Boolean!
|
Whether all listings claimed by the user will be boosted to the top of tenant's building search results. |
listingsAreBoostedCanUpgrade -
Boolean!
|
Whether the user is able to boost their claimed listings by upgrading. |
nextServiceTier -
BrokerServiceTierEnum
|
The next tier above the current one the user is on. |
weeklyIntroductionRequestLimit -
Int
|
The maximum number of introduction requests that a user can make each calendar week. A null limit means that they can make unlimited introduction requests. |
weeklyIntroductionRequestLimitCanActivate -
Boolean!
|
Whether the user is able to increase the weekly introduction request limit by activating their account. |
weeklyIntroductionRequestLimitCanUpgrade -
Boolean!
|
Whether the user is able to increase the weekly introduction request limit by upgrading. |
weeklyIntroductionRequestLimitReached -
Boolean!
|
Whether the user has already hit their limit for introduction requests this week. |
weeklyIntroductionRequestLimitUsage -
Int!
|
The number of introduction requests that the user has made during the current calendar week. |
weeklyOfferLimit -
Int
|
The maximum number of offers that a user can make each calendar week. A null limit means that they can make unlimited offers. |
weeklyOfferLimitCanActivate -
Boolean!
|
Whether the user is able to increase the weekly offer limit by activating their account. |
weeklyOfferLimitCanUpgrade -
Boolean!
|
Whether the user is able to increase the weekly offer limit by upgrading. |
weeklyOfferLimitReached -
Boolean!
|
Whether the user has already hit their limit for offers this week. |
weeklyOfferLimitUsage -
Int!
|
The number of offers that the user has made during the current calendar week. |
Example
{
"automaticIntroductionRequestsEnabled": true,
"automaticIntroductionRequestsEnabledCanUpgrade": true,
"brokerTeam": BrokerTeamType,
"chatTbCanAccess": true,
"directAssignmentEnabled": false,
"introductionRequestsAreAllowedCanActivate": true,
"introductionRequestsAreAllowedCanUpgrade": true,
"id": "abc123",
"listingsAreBoosted": false,
"listingsAreBoostedCanUpgrade": false,
"nextServiceTier": BrokerServiceTierEnum,
"weeklyIntroductionRequestLimit": 987,
"weeklyIntroductionRequestLimitCanActivate": true,
"weeklyIntroductionRequestLimitCanUpgrade": false,
"weeklyIntroductionRequestLimitReached": true,
"weeklyIntroductionRequestLimitUsage": 123,
"weeklyOfferLimit": 123,
"weeklyOfferLimitCanActivate": true,
"weeklyOfferLimitCanUpgrade": true,
"weeklyOfferLimitReached": true,
"weeklyOfferLimitUsage": 123
}
SuiteCreateInput
| Field Name | Description |
|---|---|
isAvailable -
Boolean!
|
|
clearHeightFeet -
Int
|
|
docks -
Int
|
|
dockComments -
String default = "" |
|
driveIns -
Int
|
|
driveInComments -
String default = "" |
|
kind -
[SuiteKindTypeEnum]
|
|
layout -
String default = "" |
|
minimumTermMonths -
Int
|
|
number -
String default = "" |
|
officeCount -
Int
|
|
publicNotes -
String default = "" |
|
rate -
RateType
|
|
rsf -
Int!
|
Example
{
"isAvailable": true,
"clearHeightFeet": 123,
"docks": 123,
"dockComments": "",
"driveIns": 987,
"driveInComments": "",
"kind": [SuiteKindTypeEnum],
"layout": "",
"minimumTermMonths": 987,
"number": "",
"officeCount": 123,
"publicNotes": "",
"rate": RateType,
"rsf": 123
}
SuiteKindTypeEnum
| Enum Value | Description |
|---|---|
|
|
executive-suite-coworking |
|
|
creative |
|
|
flex |
|
|
general |
|
|
manufacturing |
|
|
medical |
|
|
restaurant |
|
|
storefront |
|
|
warehouse |
SuitePhotoType
| Field Name | Description |
|---|---|
created -
DateTime!
|
|
source -
String
|
|
sourceId -
String
|
|
sortOrder -
Int!
|
|
hidden -
Boolean!
|
|
photoFile -
String!
|
|
rowId -
Float!
|
|
id -
Int!
|
|
isApproved -
Boolean
|
|
isHidden -
Boolean!
|
|
photoSrcSet -
String!
|
A sequence of image URL/width pairs formatted for use as a srcset attribute on an img tag for responsive image fetching. For example,'small.jpg 50w,medium.jpg 100w,big.jpg 100w'. |
photoUrl -
String!
|
|
|
Arguments
|
|
photoUrlLightbox -
String!
|
|
photoUrlThumb -
String!
|
|
Example
{
"created": DateTime,
"source": "xyz789",
"sourceId": "abc123",
"sortOrder": 123,
"hidden": false,
"photoFile": "abc123",
"rowId": 123.45,
"id": 123,
"isApproved": false,
"isHidden": false,
"photoSrcSet": "xyz789",
"photoUrl": "abc123",
"photoUrlLightbox": "xyz789",
"photoUrlThumb": "xyz789"
}
SuiteType
| Field Name | Description |
|---|---|
id -
Int!
|
|
number -
String!
|
|
rsf -
Int!
|
|
rate -
RateType!
|
|
rowId -
Float!
|
|
clearHeightFeet -
Int
|
|
docks -
Int
|
|
dockComments -
String!
|
|
driveIns -
Int
|
|
driveInComments -
String!
|
|
floorplanPhotos -
[FloorplanPhotoType!]!
|
|
isAvailable -
Boolean!
|
|
kind -
[SuiteKindTypeEnum!]!
|
|
layout -
String!
|
|
minimumTermMonths -
Int
|
|
officeCount -
Int
|
|
photos -
[SuitePhotoType!]!
|
|
publicNotes -
String!
|
|
rentEstimate -
Float!
|
Example
{
"id": 987,
"number": "xyz789",
"rsf": 123,
"rate": RateType,
"rowId": 123.45,
"clearHeightFeet": 987,
"docks": 123,
"dockComments": "abc123",
"driveIns": 123,
"driveInComments": "xyz789",
"floorplanPhotos": [FloorplanPhotoType],
"isAvailable": false,
"kind": [SuiteKindTypeEnum],
"layout": "xyz789",
"minimumTermMonths": 123,
"officeCount": 123,
"photos": [SuitePhotoType],
"publicNotes": "xyz789",
"rentEstimate": 123.45
}
SuiteUpdateInput
| Field Name | Description |
|---|---|
id -
Int!
|
|
clearHeightFeet -
Int
|
|
docks -
Int
|
|
dockComments -
String
|
|
driveIns -
Int
|
|
driveInComments -
String
|
|
isAvailable -
Boolean
|
|
kind -
[SuiteKindTypeEnum]
|
|
layout -
String
|
|
minimumTermMonths -
Int
|
|
number -
String
|
|
officeCount -
Int
|
|
publicNotes -
String
|
|
rate -
RateType
|
|
rsf -
Int
|
Example
{
"id": 987,
"clearHeightFeet": 123,
"docks": 123,
"dockComments": "abc123",
"driveIns": 123,
"driveInComments": "xyz789",
"isAvailable": false,
"kind": [SuiteKindTypeEnum],
"layout": "xyz789",
"minimumTermMonths": 987,
"number": "xyz789",
"officeCount": 123,
"publicNotes": "abc123",
"rate": RateType,
"rsf": 123
}
TenantBoardDealType
Type definition for TenantBoard (public) Deal information
| Field Name | Description |
|---|---|
dealId -
Float!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
acceptanceStage -
DealHandoffAcceptanceStageEnum
|
|
advisors -
[AdvisorType!]!
|
|
bdrAdvisor -
AdvisorType
|
The advisor corresponding to the original BDR who handled the deal. |
claimedDate -
DateTime
|
|
closeDate -
DateTime
|
|
companyNumberOfEmployees -
DealNumberOfEmployeesEnum
|
The year that the tenant's company was founed. |
companyYearFounded -
Float
|
The year that the tenant's company was founded. |
completionPercentage -
Int!
|
The percentage of tenant profile fields the tenant has filled out. |
connectWithPartner -
Boolean!
|
Indicates that the tenant has explicitly opted in to being connected with a partner broker. |
contactdealId -
String!
|
|
created -
String!
|
|
dealAcceptedDaysAgo -
Int
|
The number of days since the deal was accepted. |
dealName -
String!
|
|
derivedData -
DealOrContactDerivedDataType
|
Rolled up and coalesced data related to a deal. This data will be stale on order of 10-30 minutes. |
desiredLocation -
String
|
|
hasOffers -
Boolean!
|
|
industry -
String
|
|
isEligibleForIntroductionRequest -
Boolean!
|
Indicates that the deal is generally eligible for introduction requests. If this is false, then no user could feasibly request an introduction. Whether any individual can request an introduction will depend on their subscription plan (and possibly other factors). |
isPublicAccess -
Boolean!
|
Indicates that this is a public marketing deal and that anonymized access to this deal is allowed for all users. This field should not be used to control access to information directly, but it can be used to trigger additional marketing CTAs on the site. |
isRepresented -
Boolean!
|
Indicates that at least one owner is a touring capable advisor. |
isRequirementVerified -
Boolean!
|
A deal is requirement verified if the stage is currently in opportunity or onwards. |
lastMovedStage -
DateTime
|
|
lastUpdated -
DateTime
|
When the deal was last updated. |
leaseStartDate -
String
|
|
leaseTerm -
DealLeaseTermEnum
|
The lease term desired by the user. |
leaseTermMonths -
Int
|
|
locations -
GeoJSONMultiPolygon
|
|
market -
MarketType
|
|
maturity -
String
|
|
pipelineStage -
String!
|
|
pipelineStageEnum -
DealPipelineStageTypeEnum
|
|
pipelineStageId -
String
|
|
pipelineStageLastConfirmedDate -
Date
|
The date of the last time that the deal's pipeline stage was either updated or that its broker confirmed that there has been no update. |
pipelineStageLastConfirmedDaysAgo -
Int
|
The number of days since the last time that the deal's pipeline stage was either updated or that its broker confirmed that there has been no update. |
proposalExpirationTime -
DateTime
|
The time at which the current proposed broker will no longer have the option to accept the deal. It will be proposed to a new broker at that point, or moved into the "not accepted" handoff acceptance stage if there are no other eligible brokers. |
proposedAdvisor -
AdvisorType
|
|
searchNotes -
String!
|
Notes about the deal and the search for space, formatted as markdown. These are the same notes that are sent to partner brokers before deals are accepted, so they do not include sensitive information about the company and contacts. They might include budget information however, and should not be shown to landlords. |
signUpSf -
String
|
|
spaceSizeHigh -
Float
|
|
spaceSizeLow -
Float
|
|
spaceType -
[DealSpaceTypeEnum!]!
|
The space types desired by the user. |
submarkets -
[SubmarketType!]!
|
|
tenantScore -
Float
|
The highest tenant score of a contact on a deal. |
tenantSearchTechnique -
[DealTenantSearchTechniqueEnum]!
|
The approaches that the tenant has been using to find space. |
tenantbaseUserIds -
[Int!]!
|
|
transactionType -
DealTransactionTypeEnum
|
What the user is looking to do with listings ( e.g. browse, lease, purchase). |
useOfSpace -
String
|
|
userCanAccess -
Boolean!
|
Indicates whether the user should be shown this deal. Deals returned in a queryset may be "stale" because of sync lag. For example, after a proposed owner rejects a deal they should not be able to access the deal, but our local table does not reflect that change, and the queryset still includes the deal. This "fresh" attribute provides the final word about deal visibility for a user. |
userCanAccessSensitiveInformation -
Boolean!
|
Indicates that the user has permission to access sensitive information about the deal. |
userCanCreateAccount -
Boolean!
|
Whether the user can create a user account to interact with the deal. |
userCanUpdate -
Boolean!
|
Indicates whether the user has permission to update the deal. |
userCorporateCtaPermissions -
CorporateDealCtaPermissions
|
User permissions for corporate-specific actions on a deal. |
userIsBdrOwner -
Boolean!
|
Indicates that the user making the request is the BDR owner of the deal. |
userLeasingCtaPermissions -
LeasingDealCtaPermissions
|
User permissions for leasing-specific actions on a deal. |
userTenantRepCtaPermissions -
TenantRepDealCtaPermissions
|
User permissions for TenantRep-specific actions on a deal. |
Example
{
"dealId": 123.45,
"id": ID,
"rowId": 123.45,
"acceptanceStage": DealHandoffAcceptanceStageEnum,
"advisors": [AdvisorType],
"bdrAdvisor": AdvisorType,
"claimedDate": DateTime,
"closeDate": DateTime,
"companyNumberOfEmployees": DealNumberOfEmployeesEnum,
"companyYearFounded": 123.45,
"completionPercentage": 123,
"connectWithPartner": true,
"contactdealId": "xyz789",
"created": "xyz789",
"dealAcceptedDaysAgo": 123,
"dealName": "abc123",
"derivedData": DealOrContactDerivedDataType,
"desiredLocation": "abc123",
"hasOffers": true,
"industry": "xyz789",
"isEligibleForIntroductionRequest": false,
"isPublicAccess": true,
"isRepresented": false,
"isRequirementVerified": false,
"lastMovedStage": DateTime,
"lastUpdated": DateTime,
"leaseStartDate": "abc123",
"leaseTerm": DealLeaseTermEnum,
"leaseTermMonths": 987,
"locations": GeoJSONMultiPolygon,
"market": MarketType,
"maturity": "xyz789",
"pipelineStage": "xyz789",
"pipelineStageEnum": DealPipelineStageTypeEnum,
"pipelineStageId": "xyz789",
"pipelineStageLastConfirmedDate": "2025-12-04T21:37:37.477Z",
"pipelineStageLastConfirmedDaysAgo": 123,
"proposalExpirationTime": DateTime,
"proposedAdvisor": AdvisorType,
"searchNotes": "abc123",
"signUpSf": "xyz789",
"spaceSizeHigh": 123.45,
"spaceSizeLow": 987.65,
"spaceType": [DealSpaceTypeEnum],
"submarkets": [SubmarketType],
"tenantScore": 123.45,
"tenantSearchTechnique": [
DealTenantSearchTechniqueEnum
],
"tenantbaseUserIds": [987],
"transactionType": DealTransactionTypeEnum,
"useOfSpace": "abc123",
"userCanAccess": false,
"userCanAccessSensitiveInformation": false,
"userCanCreateAccount": false,
"userCanUpdate": true,
"userCorporateCtaPermissions": CorporateDealCtaPermissions,
"userIsBdrOwner": false,
"userLeasingCtaPermissions": LeasingDealCtaPermissions,
"userTenantRepCtaPermissions": TenantRepDealCtaPermissions
}
TenantBoardDealTypeConnection
Return a filtered list of deals for one or all markets
| Field Name | Description |
|---|---|
pageInfo -
PageInfo!
|
Pagination data for this connection. |
edges -
[TenantBoardDealTypeEdge]!
|
Contains the nodes in this connection. |
totalCount -
Int
|
Number of items in the queryset. |
Example
{
"pageInfo": PageInfo,
"edges": [TenantBoardDealTypeEdge],
"totalCount": 987
}
TenantBoardDealTypeEdge
A Relay edge containing a TenantBoardDealType and its cursor.
| Field Name | Description |
|---|---|
node -
TenantBoardDealType
|
The item at the end of the edge |
cursor -
String!
|
A cursor for use in pagination |
Example
{"node": TenantBoardDealType, "cursor": "xyz789"}
TenantLeadCreateInput
| Input Field | Description |
|---|---|
email -
String!
|
|
company -
String
|
|
firstName -
String
|
The lead's first name. Please provide this field and |
lastName -
String
|
|
fullName -
String
|
|
origin -
String
|
Additional information about the lead origin from the partner. |
phone -
String!
|
|
addressOfInterest -
String
|
The full street address the lead is interested in. Please provide this field or |
addressComponentsOfInterest -
AddressComponentsInput
|
Area or specific address the lead is interested in as individual fields, versus a single combined string. Please provide this field or |
desiredLeaseTerm -
TenantLeadLeaseTermEnum
|
|
desiredMoveInDate -
Date
|
The date the lead would like to begin their lease. If your platform captures this information in a format like "3-6 months from now" we suggest filling this field out with a date three months from now. Please also put the original data you capture in |
desiredSizeSfHigh -
Float
|
|
desiredSizeSfLow -
Float
|
|
monthlyBudgetHigh -
Float
|
|
monthlyBudgetLow -
Float
|
|
searchTerms -
[String!] default = [] |
|
spaceTypes -
[DealSpaceTypeEnum!] default = [] |
The commercial space types desired by the lead. |
transactionType -
DealTransactionTypeEnum
|
Whether the lead to willing to lease, purchase, either, or just browsing. |
message -
String
|
|
additionalData -
JSON
|
Additional useful data you capture about the lead, or original data that was reformatted for TenantBase's API, formatted as arbitrary JSON. We use this data to improve our lead followup. For example, if your platform captures a desired move-in of "3-6 months from now" and you fill |
Example
{
"email": "xyz789",
"company": "xyz789",
"firstName": "xyz789",
"lastName": "xyz789",
"fullName": "xyz789",
"origin": "xyz789",
"phone": "abc123",
"addressOfInterest": "abc123",
"addressComponentsOfInterest": AddressComponentsInput,
"desiredLeaseTerm": TenantLeadLeaseTermEnum,
"desiredMoveInDate": "2025-12-04T21:37:37.477Z",
"desiredSizeSfHigh": 123.45,
"desiredSizeSfLow": 123.45,
"monthlyBudgetHigh": 987.65,
"monthlyBudgetLow": 987.65,
"searchTerms": [],
"spaceTypes": [],
"transactionType": DealTransactionTypeEnum,
"message": "abc123",
"additionalData": {}
}
TenantLeadLeaseTermEnum
A lead's desired lease term duration.
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TenantLeadTypeConnection
| Field Name | Description |
|---|---|
pageInfo -
PageInfo!
|
Pagination data for this connection. |
edges -
[TenantLeadTypeEdge]!
|
Contains the nodes in this connection. |
Example
{
"pageInfo": PageInfo,
"edges": [TenantLeadTypeEdge]
}
TenantLeadTypeEdge
A Relay edge containing a TenantLeadType and its cursor.
| Field Name | Description |
|---|---|
node -
TenantLeadType
|
The item at the end of the edge |
cursor -
String!
|
A cursor for use in pagination |
Example
{"node": TenantLeadType, "cursor": "xyz789"}
TenantProfileType
Fields related to a users tenant profile.
| Field Name | Description |
|---|---|
serviceLevel -
TenantServiceLevelEnum
|
Example
{"serviceLevel": TenantServiceLevelEnum}
TenantRepDealCtaPermissions
User permissions for renant-rep-specific actions on a deal.
| Field Name | Description |
|---|---|
dealId -
ID!
|
|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
canAcceptProposal -
Boolean!
|
The user can accept the handoff proposed deal. |
canActivateToRequestIntroduction -
Boolean!
|
The user can activate their account to gain access to making an introduction request for this deal. |
canCreateAdvisor -
Boolean!
|
The user is able to go through broker onboarding to become a fully onboarded tenant rep. This could mean they are anonymous or a leasing user. |
canRejectProposal -
Boolean!
|
The user can accept the handoff proposed deal. |
canRequestIntroduction -
Boolean!
|
The user has permission to make an introduction request for this deal. |
canStartFreeTrialToRequestIntroduction -
Boolean!
|
The user can start a free trial to gain access to making an introduction request for this deal. This does not necessarily mean they have permission to update billing, but we still want to show them a CTA to start the trial so they can talk to their team admin about it. |
canUpgradeToRequestIntroduction -
Boolean!
|
The user can upgrade their account and gain access to making an introduction request for this deal. |
hasRequestedIntroduction -
Boolean!
|
The user has already made an introduction request for this deal. |
Example
{
"dealId": ID,
"id": ID,
"rowId": 987.65,
"canAcceptProposal": true,
"canActivateToRequestIntroduction": false,
"canCreateAdvisor": true,
"canRejectProposal": false,
"canRequestIntroduction": true,
"canStartFreeTrialToRequestIntroduction": false,
"canUpgradeToRequestIntroduction": false,
"hasRequestedIntroduction": false
}
UpdateListingInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
listingData -
ListingUpdateInput!
|
|
clientMutationId -
String
|
Example
{
"token": "abc123",
"listingData": ListingUpdateInput,
"clientMutationId": "abc123"
}
UpdateListingPayload
Update listing attributes.
| Field Name | Description |
|---|---|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{"listing": ListingType, "clientMutationId": "abc123"}
UpdateSuiteInput
| Input Field | Description |
|---|---|
token -
String
|
An optional JWT token permitting an action on behalf of a managed user. |
suiteData -
SuiteUpdateInput!
|
|
clientMutationId -
String
|
Example
{
"token": "abc123",
"suiteData": SuiteUpdateInput,
"clientMutationId": "abc123"
}
UpdateSuitePayload
Update suite attributes.
| Field Name | Description |
|---|---|
suite -
SuiteType!
|
|
listing -
ListingType!
|
|
clientMutationId -
String
|
Example
{
"suite": SuiteType,
"listing": ListingType,
"clientMutationId": "abc123"
}
Upload
Create scalar that ignores normal serialization/deserialization, since that will be handled by the multipart request spec
Example
object
UserType
Container for tenant, broker, and leasing profiles.
| Field Name | Description |
|---|---|
id -
ID!
|
The ID of the object. |
rowId -
Float!
|
|
firstName -
String!
|
|
lastName -
String!
|
|
email -
String!
|
|
phoneNumber -
String!
|
|
company -
String!
|
|
hasCorporatePermission -
Boolean!
|
Whether or not the user has permission to access the corporate site. |
hasTenantPermission -
Boolean!
|
Whether or not the user has permission to access the tenant site. |
brokerProfile -
AdvisorType
|
Returns the currently logged in advisor. |
leasingProfile -
LeasingProfileType!
|
Details about the user's leasing profile. |
tenantProfile -
TenantProfileType!
|
Details about tenant profile |
customSubscriptionCount -
Int!
|
The number of active subscriptions the current user has that were not initiated via tenantbase.com (eg. via Hubspot, the Stripe dashboard). |
subscriptionPlan -
SubscriptionPlanType
|
Details about the limits and usage of the user's current subscription plan. |
Example
{
"id": ID,
"rowId": 123.45,
"firstName": "abc123",
"lastName": "xyz789",
"email": "xyz789",
"phoneNumber": "xyz789",
"company": "xyz789",
"hasCorporatePermission": false,
"hasTenantPermission": false,
"brokerProfile": AdvisorType,
"leasingProfile": LeasingProfileType,
"tenantProfile": TenantProfileType,
"customSubscriptionCount": 123,
"subscriptionPlan": SubscriptionPlanType
}
VerifyPayload
| Field Name | Description |
|---|---|
payload -
GenericScalar!
|
|
clientMutationId -
String
|
Example
{"payload": GenericScalar, "clientMutationId": "abc123"}