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:

  1. 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.
  1. 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

Return single listing related to user
Returns a 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}
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

Retrieves list of managed users of the given partner account
Returns a 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
}
Response
{
  "data": {
    "managedUsers": {
      "pageInfo": PageInfo,
      "edges": [ManagedPartnerUserTypeEdge]
    }
  }
}

markets

Return a list of markets TenantBase operates in
Returns a 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
}
Response
{
  "data": {
    "markets": {
      "pageInfo": PageInfo,
      "edges": [MarketTypeEdge]
    }
  }
}

myListings

Return listings related to user
Returns a 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
}
Response
{
  "data": {
    "myListings": {
      "pageInfo": PageInfo,
      "edges": [LeasingListingTypeEdge],
      "totalCount": 123
    }
  }
}

tenantBoardDeals

This field is deprecated and will be removed on April 15th, 2023.
Deprecated, do not use
Returns a 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"
}
Response
{
  "data": {
    "tenantBoardDeals": {
      "pageInfo": PageInfo,
      "edges": [TenantBoardDealTypeEdge],
      "totalCount": 987
    }
  }
}

whoAmI

Returns a 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"}
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

Create a new listing for suites in a building
Returns a CreateListingPayload

Name Description
input - CreateListingInput!

Example

Query
mutation createListing($input: CreateListingInput!) {
  createListing(input: $input) {
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": CreateListingInput}
Response
{
  "data": {
    "createListing": {
      "listing": ListingType,
      "clientMutationId": "xyz789"
    }
  }
}

createListingSuite

Create a new suite for an existing listing
Returns a CreateListingSuitePayload

Name Description
input - CreateListingSuiteInput!

Example

Query
mutation createListingSuite($input: CreateListingSuiteInput!) {
  createListingSuite(input: $input) {
    suite {
      ...SuiteTypeFragment
    }
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": CreateListingSuiteInput}
Response
{
  "data": {
    "createListingSuite": {
      "suite": SuiteType,
      "listing": ListingType,
      "clientMutationId": "xyz789"
    }
  }
}

createManagedUser

Create a new managed API user
Returns a CreateManagedUserPayload

Name Description
input - CreateManagedUserInput!

Example

Query
mutation createManagedUser($input: CreateManagedUserInput!) {
  createManagedUser(input: $input) {
    created
    clientMutationId
  }
}
Variables
{"input": CreateManagedUserInput}
Response
{
  "data": {
    "createManagedUser": {"created": false, "clientMutationId": "abc123"}
  }
}

createOffer

Create an offer based on specified Deal and Listing.
Returns a CreateOfferPayload

Name Description
input - CreateOfferInput!

Example

Query
mutation createOffer($input: CreateOfferInput!) {
  createOffer(input: $input) {
    offer {
      ...LandlordOfferTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": CreateOfferInput}
Response
{
  "data": {
    "createOffer": {
      "offer": LandlordOfferType,
      "clientMutationId": "xyz789"
    }
  }
}

createTenantLead

Create a new tenant lead from partner referral
Returns a CreateTenantLeadPayload

Name Description
input - CreateTenantLeadInput!

Example

Query
mutation createTenantLead($input: CreateTenantLeadInput!) {
  createTenantLead(input: $input) {
    tenantLead {
      ...TenantLeadTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": CreateTenantLeadInput}
Response
{
  "data": {
    "createTenantLead": {
      "tenantLead": TenantLeadType,
      "clientMutationId": "xyz789"
    }
  }
}

hidePhoto

Update either a building, suite, or floorplan photo
Returns a HidePhotoPayload

Name Description
input - HidePhotoInput!

Example

Query
mutation hidePhoto($input: HidePhotoInput!) {
  hidePhoto(input: $input) {
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": HidePhotoInput}
Response
{
  "data": {
    "hidePhoto": {
      "listing": ListingType,
      "clientMutationId": "xyz789"
    }
  }
}

managedTokenAuth

Obtain JSON Web Token on behalf of a user mutation

Example

Query
mutation managedTokenAuth($input: ObtainManagedJSONWebTokenInput!) {
  managedTokenAuth(input: $input) {
    payload
    refreshExpiresIn
    clientMutationId
    token
    refreshToken
  }
}
Variables
{"input": ObtainManagedJSONWebTokenInput}
Response
{
  "data": {
    "managedTokenAuth": {
      "payload": GenericScalar,
      "refreshExpiresIn": 123,
      "clientMutationId": "abc123",
      "token": "abc123",
      "refreshToken": "xyz789"
    }
  }
}

refreshToken

Returns a RefreshPayload

Name Description
input - RefreshInput!

Example

Query
mutation refreshToken($input: RefreshInput!) {
  refreshToken(input: $input) {
    payload
    refreshExpiresIn
    clientMutationId
    token
    refreshToken
  }
}
Variables
{"input": RefreshInput}
Response
{
  "data": {
    "refreshToken": {
      "payload": GenericScalar,
      "refreshExpiresIn": 123,
      "clientMutationId": "xyz789",
      "token": "xyz789",
      "refreshToken": "abc123"
    }
  }
}

removeListing

Remove listing from user's inventory
Returns a RemoveListingPayload

Name Description
input - RemoveListingInput!

Example

Query
mutation removeListing($input: RemoveListingInput!) {
  removeListing(input: $input) {
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": RemoveListingInput}
Response
{
  "data": {
    "removeListing": {
      "listing": ListingType,
      "clientMutationId": "abc123"
    }
  }
}

revokeToken

Returns a RevokePayload

Name Description
input - RevokeInput!

Example

Query
mutation revokeToken($input: RevokeInput!) {
  revokeToken(input: $input) {
    revoked
    clientMutationId
  }
}
Variables
{"input": RevokeInput}
Response
{"data": {"revokeToken": {"revoked": 123, "clientMutationId": "abc123"}}}

sortPhotos

Sort either building, suite, or floorplan photos
Returns a SortPhotosPayload

Name Description
input - SortPhotosInput!

Example

Query
mutation sortPhotos($input: SortPhotosInput!) {
  sortPhotos(input: $input) {
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": SortPhotosInput}
Response
{
  "data": {
    "sortPhotos": {
      "listing": ListingType,
      "clientMutationId": "abc123"
    }
  }
}

tokenAuth

Obtain JSON Web Token mutation
Returns an ObtainJSONWebTokenPayload

Name Description
input - ObtainJSONWebTokenInput!

Example

Query
mutation tokenAuth($input: ObtainJSONWebTokenInput!) {
  tokenAuth(input: $input) {
    payload
    refreshExpiresIn
    clientMutationId
    token
    refreshToken
  }
}
Variables
{"input": ObtainJSONWebTokenInput}
Response
{
  "data": {
    "tokenAuth": {
      "payload": GenericScalar,
      "refreshExpiresIn": 123,
      "clientMutationId": "abc123",
      "token": "abc123",
      "refreshToken": "abc123"
    }
  }
}

updateListing

Update listing attributes
Returns an UpdateListingPayload

Name Description
input - UpdateListingInput!

Example

Query
mutation updateListing($input: UpdateListingInput!) {
  updateListing(input: $input) {
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": UpdateListingInput}
Response
{
  "data": {
    "updateListing": {
      "listing": ListingType,
      "clientMutationId": "abc123"
    }
  }
}

updateSuite

Update suite attributes
Returns an UpdateSuitePayload

Name Description
input - UpdateSuiteInput!

Example

Query
mutation updateSuite($input: UpdateSuiteInput!) {
  updateSuite(input: $input) {
    suite {
      ...SuiteTypeFragment
    }
    listing {
      ...ListingTypeFragment
    }
    clientMutationId
  }
}
Variables
{"input": UpdateSuiteInput}
Response
{
  "data": {
    "updateSuite": {
      "suite": SuiteType,
      "listing": ListingType,
      "clientMutationId": "abc123"
    }
  }
}

verifyToken

Returns a VerifyPayload

Name Description
input - VerifyInput!

Example

Query
mutation verifyToken($input: VerifyInput!) {
  verifyToken(input: $input) {
    payload
    clientMutationId
  }
}
Variables
{"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

minimumNumber - Int default = 20

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
}

AlertFrequencyTypeEnum

Enum Value Description

NEVER

never

DAILY

daily

WEEKLY

weekly

AlertPreferenceFrequency

An enumeration.

Enum Value Description

NEVER

never

DAILY

daily

WEEKLY

weekly

AlertPreferenceLayout

An enumeration.

Enum Value Description

ANY

Any

OFFICE

Mostly office

HALF

Half office

OPEN

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"
}

Boolean

The Boolean scalar type represents true or false.

Example
false

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

PROBATION

FREE

BASE_V1

PRO_V2022_12

PARTNER_V2022_12

PARTNER_V1

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

accept_proposed_deal

accept_team_proposed_deal

view_team_deal

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
}

BrokerUserContactPreferenceType

An enumeration.

Enum Value Description

text_message

call

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

Call For Showing

LOCKBOX_AND_CODE

Lockbox and Code

LOCKBOX_AND_KEY

Lockbox and Key

LEASING_MANAGER_ON_SITE

Leasing Manager On-site

KEY_AT_LEASING_OFFICE

Key at Leasing Office

OPEN_DURING_BUSINESS_HOURS

Open During Business Hours

OTHER

Other

BuildingInput

Input Field Description
id - Int
street - String
city - String
state - String
postalCode - String
name - String
Example
{
  "id": 123,
  "street": "xyz789",
  "city": "abc123",
  "state": "abc123",
  "postalCode": "abc123",
  "name": "abc123"
}

BuildingKind

An enumeration.

Enum Value Description

STANDARD

Standard

SHARED_SUITE

Shared Suite

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

Broker Search

TENANT_SITE

Tenant Site

APPROVED_FOR_MARKETING

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]
}

BuildingUpdateInput

Input Field Description
name - String!
Example
{"name": "xyz789"}

CompanyCreateInput

Input Field Description
name - String!
website - String default = ""
Example
{
  "name": "abc123",
  "website": ""
}

CompanyType

Field Name Description
id - Int!
name - String!
website - String!
Example
{"id": 123, "name": "xyz789", "website": "xyz789"}

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"
}

CreateManagedUserPayload

Create a new managed API user.

Field Name Description
created - Boolean! Indicates that the user was successfully created.
clientMutationId - String
Example
{"created": false, "clientMutationId": "xyz789"}

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

READY

The deal is ready to be assigned.

PROPOSED

The deal has been proposed to a broker for a handoff.

ACCEPTED

The deal has been accepted by a broker and is now owned by them.

NOT_ACCEPTED

The deal has been rejected by all eligible brokers and will not be automatically reassigned.

DealLeaseTermEnum

An enumeration.

Enum Value Description

LESS_THAN_ONE_YEAR

_1_2_YEARS

_2_3_YEARS

_3_5_YEARS

_5_PLUS_YEARS

DealNumberOfEmployeesEnum

An enumeration.

Enum Value Description

SELF_EMPLOYED

_1_10

_11_50

_51_200

_201_500

_501_1000

_1001_5000

_5001_10000

_10001_PLUS

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

CLOSING

NEGOTIATING

OPPORTUNITY

PRETARGETING

SET_MEETING

TARGETING

TOURING

SIGNED

FULLY_EXECUTED

FOUND_A_SPACE

NO_RESPONSE

OTHER_BROKER

PENDING

RENEWED

UNWORKABLE

DealReferralTypeEnum

An enumeration.

Enum Value Description

HANDOFF

INTRODUCTION_REQUEST

DealSpaceTypeEnum

An enumeration.

Enum Value Description

COWORKING

CREATIVE

EXECUTIVE_SUITE

FLEX

MEDICAL

OFFICE

STOREFRONT

WAREHOUSE

DealTenantSearchTechniqueEnum

An enumeration.

Enum Value Description

JUST_STARTED

BROWSE_ONLINE

CALL_LISTINGS

TOUR_SPACES

HAVE_BROKER

DealTransactionTypeEnum

An enumeration.

Enum Value Description

BROWSE

LEASE

LEASE_OR_PURCHASE

PURCHASE

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

GeoJSONMultiPolygon

A GeoJSON MultiPolygon object.

Example
object

GeoJSONPoint

A GeoJSON Point object.

Example
object

GeoJSONPolygon

A GeoJSON Polygon 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

IdRequiredInput

Input Field Description
id - Int!
Example
{"id": 987}

ImageSizeAliasEnum

An enumeration.

Enum Value Description

ADVISOR

ADVISOR_LARGE

BUILDING_CARD

EMAIL

EMAIL_SIGNATURE_LOGO

HOMEPAGE_HERO

LEASING_CARD

LEASING_THUMB

LIGHTBOX

LIGHTBOX_THUMB

NO_CROP_THUMB

ORIGINAL

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

IntegerRangeType

An integer range including lower and upper bounds for the range.

Field Name Description
lower - Int The lower bound of the range.
upper - Int The upper bound of the range.
Example
{"lower": 987, "upper": 123}

JSON

Any JSON object.

Example
{}

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
}

LeasingAlertPreferenceType

Field Name Description
id - ID! The ID of the object.
created - DateTime!
modified - DateTime!
user - UserType!
frequency - AlertFrequencyTypeEnum!
rowId - Float!
Example
{
  "id": ID,
  "created": DateTime,
  "modified": DateTime,
  "user": UserType,
  "frequency": AlertFrequencyTypeEnum,
  "rowId": 123.45
}

LeasingDealConnection

Field Name Description
isNewDeal - Boolean!
Example
{"isNewDeal": false}

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!

Arguments

offset - Int

before - String

after - String

first - Int

last - Int

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

Call For Showing

LOCKBOX_CODE

Lockbox and Code

LOCKBOX_KEY

Lockbox and Key

MANAGER

Leasing Manager On-site

KEY

Key at Leasing Office

OPEN

Open During Business Hours

OTHER

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
}

ListingBrochureType

Field Name Description
created - DateTime!
brochureFile - String!
source - String
rowId - Float!
Example
{
  "created": DateTime,
  "brochureFile": "abc123",
  "source": "abc123",
  "rowId": 123.45
}

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

BROKER_CALL

Listing Broker / Owner

MARKETING_EMAIL_BLAST

Marketing email blast

BUILDOUTAPI

BuildOut

IWG_REGUS

IWG / Regus

COMPANY_WEBSITE

Company website

VERSIONISTA

Versionista

LEASING_PORTAL

Leasing Portal

TENANTBOARD_SUBMISSION

TenantBoard Submission

FORTYTWOFLOORSCSV

42Floors

AIRCRECSV

AIR CRE

BOXERCSV

Boxer

CREXICSV

CREXi

YARDIMATRIXCSV

Yardi Matrix

COMMGATE

CommGate

CATYLIST

Catylist

MLS

MLS

TENANTBASE_BROKER

TenantBase Broker

NEWS_STORY_PRESS_RELEASE

News Story / Press Release

INVENTORY

Inventory

CORRECTION_AUDITS

Correction/Audits

UNKNOWN

Unknown

SIMPLEYAML

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

Direct Lease

SUBLEASE

Sublease

COWORKING

Co-Working

SALE

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

AL

Alabama

AK

Alaska

AS

American Samoa

AZ

Arizona

AR

Arkansas

AA

Armed Forces Americas

AE

Armed Forces Europe

AP

Armed Forces Pacific

CA

California

CO

Colorado

CT

Connecticut

DE

Delaware

DC

District of Columbia

FL

Florida

GA

Georgia

GU

Guam

HI

Hawaii

ID

Idaho

IL

Illinois

IN

Indiana

IA

Iowa

KS

Kansas

KY

Kentucky

LA

Louisiana

ME

Maine

MD

Maryland

MA

Massachusetts

MI

Michigan

MN

Minnesota

MS

Mississippi

MO

Missouri

MT

Montana

NE

Nebraska

NV

Nevada

NH

New Hampshire

NJ

New Jersey

NM

New Mexico

NY

New York

NC

North Carolina

ND

North Dakota

MP

Northern Mariana Islands

OH

Ohio

OK

Oklahoma

OR

Oregon

PA

Pennsylvania

PR

Puerto Rico

RI

Rhode Island

SC

South Carolina

SD

South Dakota

TN

Tennessee

TX

Texas

UT

Utah

VT

Vermont

VI

Virgin Islands

VA

Virginia

WA

Washington

WV

West Virginia

WI

Wisconsin

WY

Wyoming

AB

Alberta

BC

British Columbia

MB

Manitoba

NB

New Brunswick

NL

Newfoundland and Labrador

NT

Northwest Territories

NS

Nova Scotia

NU

Nunavut

ON

Ontario

PE

Prince Edward Island

QC

Quebec

SK

Saskatchewan

YT

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"}

MessageDirectionEnum

An enumeration.

Enum Value Description

TO_ORIGINATORS

TO_RESPONDERS

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"
}

ObtainJSONWebTokenInput

Input Field Description
clientMutationId - String
username - String!
password - String!
Example
{"clientMutationId": "abc123", "username": "abc123", "password": "xyz789"}

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"
}

ObtainManagedJSONWebTokenInput

Input Field Description
externalId - String!

The external ID for the managed user as specified when the user was created.

clientMutationId - String
Example
{"externalId": "abc123", "clientMutationId": "abc123"}

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"
}

OfferCreateInput

Input Field Description
attachments - Upload
subject - String!
body - String!
dealId - Float!
listingId - Int
Example
{
  "attachments": Upload,
  "subject": "abc123",
  "body": "xyz789",
  "dealId": 123.45,
  "listingId": 987
}

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!

Arguments

offset - Int

before - String

after - String

first - Int

last - Int

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}

PhotoTypeEnum

Enum Value Description

BUILDING

building

SUITE

suite

FLOORPLAN

floorplan

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

RefreshInput

Input Field Description
refreshToken - String
clientMutationId - String
Example
{"refreshToken": "xyz789", "clientMutationId": "xyz789"}

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"}

RevokeInput

Input Field Description
refreshToken - String
clientMutationId - String
Example
{"refreshToken": "abc123", "clientMutationId": "abc123"}

RevokePayload

Field Name Description
revoked - Int!
clientMutationId - String
Example
{"revoked": 123, "clientMutationId": "xyz789"}

SearchParametersFocusType

An enumeration.

Enum Value Description

SUBMARKET

submarket

COORDINATES

coordinates

SearchParametersLayout

An enumeration.

Enum Value Description

ANY

Any

OFFICE

Mostly office

HALF

Half office

OPEN

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
}

SuiteKindLegacyType

Field Name Description
id - Int!
name - String!
slug - String!
rowId - Float!
Example
{"id": 123, "name": "xyz789", "slug": "abc123", "rowId": 987.65}

SuiteKindTypeEnum

Enum Value Description

COWORKING

executive-suite-coworking

CREATIVE_OFFICE

creative

FLEX

flex

GENERAL_OFFICE

general

MANUFACTURING

manufacturing

MEDICAL_OFFICE

medical

RESTAURANT

restaurant

STOREFRONT

storefront

WAREHOUSE

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, or fullName, but not both.

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, but not both.

addressComponentsOfInterest - AddressComponentsInput

Area or specific address the lead is interested in as individual fields, versus a single combined string. Please provide this field or addressOfInterest, not both.

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 additionalData field below.

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 desiredMoveInDate with a computed date, please pass the original value as additionalData of {"desiredMoveInTimeline": "3-6 months from now"}.

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

LESS_THAN_ONE_YEAR

ONE_YEAR

TWO_YEARS

THREE_TO_FIVE_YEARS

FIVE_PLUS_YEARS

TenantLeadType

Lead referral from data partner.

Field Name Description
email - String
leadAlreadyExists - Boolean
id - ID! The ID of the object.
rowId - Float!
Example
{
  "email": "xyz789",
  "leadAlreadyExists": false,
  "id": ID,
  "rowId": 987.65
}

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
}

TenantServiceLevelEnum

An enumeration.

Enum Value Description

SELF

FULL

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
}

VerifyInput

Input Field Description
token - String
clientMutationId - String
Example
{"token": "xyz789", "clientMutationId": "xyz789"}

VerifyPayload

Field Name Description
payload - GenericScalar!
clientMutationId - String
Example
{"payload": GenericScalar, "clientMutationId": "abc123"}