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
    boosted
    searchScope
    rowId
    agents {
      ...ListingAgentTypeFragment
    }
    brochures {
      ...ListingBrochureTypeFragment
    }
    suites {
      ...SuiteTypeFragment
    }
    latestSuiteAvailability
    hasHadDealListingMatches
    offers {
      ...LandlordOfferTypeFragment
    }
    recommendedDeals(before: $before, after: $after, first: $first, last: $last) {
      ...ListingRecommendedDealConnectionFragment
    }
  }
}
Variables
{"token": "xyz789", "id": 123}
Response
{
  "data": {
    "listing": {
      "id": ID,
      "listingType": ListingTypeEnum,
      "publicNotes": "abc123",
      "privateNotes": "abc123",
      "created": DateTime,
      "uuid": "abc123",
      "building": BuildingType,
      "latestSource": ListingLatestSource,
      "website": "abc123",
      "access": ListingAccessTypeEnum,
      "accessDetails": "xyz789",
      "boosted": true,
      "searchScope": "xyz789",
      "rowId": 123.45,
      "agents": [ListingAgentType],
      "brochures": [ListingBrochureType],
      "suites": [SuiteType],
      "latestSuiteAvailability": "xyz789",
      "hasHadDealListingMatches": true,
      "offers": [LandlordOfferType],
      "recommendedDeals": ListingRecommendedDealConnection
    }
  }
}

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": "xyz789",
  "externalIds": ["xyz789"],
  "offset": 123,
  "before": "xyz789",
  "after": "xyz789",
  "first": 987,
  "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": "abc123",
  "after": "xyz789",
  "first": 123,
  "last": 123
}
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": 987,
  "before": "xyz789",
  "after": "xyz789",
  "first": 987,
  "last": 987
}
Response
{
  "data": {
    "myListings": {
      "pageInfo": PageInfo,
      "edges": [LeasingListingTypeEdge],
      "totalCount": 123
    }
  }
}

tenantBoardDeals

Return a filtered list of deals for one or all markets.

The "market" argument is optional. If not provided, deals in all markets are returned.

Filters include:

leaseTerm - A CSV string containing lease terms.

Choices include:

  • "Less than one year"
  • "1 - 2 Years"
  • "2 - 3 Years"
  • "3 - 5 Years"
  • "5+ Years"

For example:

leaseTerm: "1 - 2 Years,2 - 3 Years"

market - An integer which maps to a specific market ID.

Market choices are returned by the "markets" query. Use the rowId value of MarketType, converted to an integer, for the market ID.

For example:

market: 17

pipelineStage - Not used.

size - A CSV string containing an integer-based size range, low and high.

For example:

size: "2000,5000"

spaceType - A CSV string containing valid space types.

Choices include:

  • "Creative"
  • "Flex"
  • "General"
  • "Manufacturing"
  • "Medical"
  • "Restaurant"
  • "Storefront"
  • "Warehouse"

For example:

spaceType: "Flex,Warehouse"

transactionType - The type of transaction that the tenant is interested in.

Choices include:

  • "BROWSE" - Only interested in browsing listings.
  • "LEASE" - Interested in leasing a space.
  • "LEASE_OR_PURCHASE" - Interested in either leasing or purchasing.
  • "PURCHASE" - Interested in purchasing a building.
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": 987,
  "offset": 987,
  "before": "abc123",
  "after": "xyz789",
  "first": 123,
  "last": 123,
  "dealId": 123.45,
  "leaseTerm": "xyz789",
  "pipelineStage": "abc123",
  "size": "xyz789",
  "spaceType": "abc123",
  "transactionType": "xyz789"
}
Response
{
  "data": {
    "tenantBoardDeals": {
      "pageInfo": PageInfo,
      "edges": [TenantBoardDealTypeEdge],
      "totalCount": 123
    }
  }
}

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) {
    id
    firstName
    lastName
    email
    password
    lastLogin
    isSuperuser
    username
    isStaff
    isActive
    dateJoined
    buildingphotoSet {
      ...BuildingPhotoTypeFragment
    }
    suitephotoSet {
      ...SuitePhotoTypeFragment
    }
    floorplanphotoSet {
      ...FloorplanPhotoTypeFragment
    }
    listingcontactUserSet {
      ...ListingContactTypeFragment
    }
    listingcontactContactedbySet {
      ...ListingContactTypeFragment
    }
    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": {
      "id": ID,
      "firstName": "xyz789",
      "lastName": "abc123",
      "email": "xyz789",
      "password": "xyz789",
      "lastLogin": DateTime,
      "isSuperuser": false,
      "username": "abc123",
      "isStaff": true,
      "isActive": true,
      "dateJoined": DateTime,
      "buildingphotoSet": [BuildingPhotoType],
      "suitephotoSet": [SuitePhotoType],
      "floorplanphotoSet": [FloorplanPhotoType],
      "listingcontactUserSet": [ListingContactType],
      "listingcontactContactedbySet": [
        ListingContactType
      ],
      "searchparameters": SearchParametersType,
      "advisor": AdvisorType,
      "offerfeedbackSet": [OfferFeedbackType],
      "alertpreference": AlertPreferenceType,
      "leasingusermarketassociation": LeasingUserMarketAssociationType,
      "leasingalertpreference": LeasingAlertPreferenceType,
      "tenantleadSet": TenantLeadTypeConnection,
      "rowId": 123.45
    }
  }
}

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

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

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

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": 987,
      "clientMutationId": "xyz789",
      "token": "abc123",
      "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": "xyz789"}}}

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

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": 987,
      "clientMutationId": "abc123",
      "token": "xyz789",
      "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": "xyz789", "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 yet applicable to the advisor - they are not the owner or proposed owner on any deal.

hasBio - Boolean!

Indicates that the advisor has filled in their bio.

hasUploadedPhoto - Boolean!

Indicates that the advisor has uploaded a profile picture.

Example
{
  "id": ID,
  "hasAcceptedOneDeal": true,
  "hasBio": true,
  "hasUploadedPhoto": true
}

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": "abc123",
  "bioUrl": "abc123",
  "company": "abc123",
  "eligibleMarkets": [MarketType],
  "email": "xyz789",
  "firstName": "abc123",
  "isBdr": false,
  "isTouringCapable": false,
  "lastName": "abc123",
  "leadBounds": GeoJSONMultiPolygon,
  "leadSuiteKind": [SuiteKindTypeEnum],
  "licenseNumber": "abc123",
  "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": "xyz789",
  "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": 987.65,
  "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

BrokerServiceTierEnum

An enumeration.

Enum Value Description

FREE

BASE_V1

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!
lastName - String!
permissions - [BrokerTeamPermissionsType!]!
phoneNumber - String!
photoUrl - String!
serviceTier - BrokerServiceTierEnum!
Example
{
  "isAdmin": false,
  "id": ID,
  "rowId": 987.65,
  "advisor": AdvisorType,
  "email": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "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!]!
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": "abc123",
  "description": "abc123",
  "serviceTier": BrokerServiceTierEnum,
  "id": ID,
  "rowId": 123.45,
  "hasBillingCustomer": true,
  "billingSubscription": BillingSubscriptionType,
  "logoUrl": "abc123",
  "subscriptionPlan": SubscriptionPlanType,
  "teamMembers": [BrokerTeamMemberType],
  "userIsAdmin": true
}

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": 987,
  "street": "abc123",
  "city": "xyz789",
  "state": "abc123",
  "postalCode": "xyz789",
  "name": "xyz789"
}

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!
photoUrl - String!

Arguments

photoUrlCard - String!
photoUrlLightbox - String!
photoUrlThumb - String!
buildingId - Int!
Example
{
  "created": DateTime,
  "source": "abc123",
  "sourceId": "xyz789",
  "sortOrder": 123,
  "weOriginated": false,
  "hidden": true,
  "photoFile": "xyz789",
  "rowId": 123.45,
  "id": 123,
  "isApproved": true,
  "isHidden": true,
  "photoUrl": "abc123",
  "photoUrlCard": "abc123",
  "photoUrlLightbox": "xyz789",
  "photoUrlThumb": "xyz789",
  "buildingId": 987
}

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 - Boolean!
searchScope - BuildingSearchScope!
duplicate - Boolean!
rowId - Float!
photos - [BuildingPhotoType!]!
suites - [SuiteType!]!
Example
{
  "id": 987,
  "created": DateTime,
  "modified": DateTime,
  "name": "abc123",
  "website": "xyz789",
  "kind": BuildingKind,
  "access": BuildingAccess,
  "accessDetails": "xyz789",
  "street": "xyz789",
  "city": "xyz789",
  "state": "abc123",
  "postalCode": "abc123",
  "location": GeoJSONPoint,
  "boosted": false,
  "searchScope": BuildingSearchScope,
  "duplicate": false,
  "rowId": 123.45,
  "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": "xyz789"}

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

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": "abc123",
  "firstName": "abc123",
  "lastName": "xyz789",
  "phoneNumber": "abc123",
  "clientMutationId": "xyz789"
}

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

CreateOfferInput

Input Field Description
token - String

An optional JWT token permitting an action on behalf of a managed user.

offerData - OfferCreateInput!
clientMutationId - String
Example
{
  "token": "abc123",
  "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": "xyz789"
}

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
2022-05-30T00:48:48.006Z

DateTime

The DateTime scalar type represents a DateTime value as specified by iso8601.

Example
object

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

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!
photoUrl - String!

Arguments

photoUrlLightbox - String!
photoUrlThumb - String!
Example
{
  "created": DateTime,
  "source": "xyz789",
  "sourceId": "xyz789",
  "sortOrder": 987,
  "hidden": false,
  "photoFile": "abc123",
  "rowId": 123.45,
  "id": 123,
  "isApproved": false,
  "isHidden": false,
  "photoUrl": "xyz789",
  "photoUrlLightbox": "abc123",
  "photoUrlThumb": "abc123"
}

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

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": 123, "upper": 987}

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!
deal - TenantBoardDealType
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": "abc123",
  "created": DateTime,
  "listing": ListingType,
  "offerId": 987,
  "modified": DateTime,
  "deal": TenantBoardDealType,
  "messages": [MessageType],
  "responderOpenCount": 987,
  "responderReplyCount": 987
}

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
}

LeasingDealCtaPermissions

User permissions for leasing-specific actions on a deal.

Field Name Description
dealId - ID!
id - ID!

The ID of the object.

rowId - Float!
canContactBroker - Boolean!

The user has permission to view the contact information of the tenant representative.

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,
  "canContactBroker": true,
  "canSubmitOffer": true,
  "canUpgradeToSubmitOffer": false,
  "hasSubmittedOffer": true
}

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!
boosted - Boolean!
searchScope - String!
rowId - Float!
agents - [ListingAgentType!]!
brochures - [ListingBrochureType!]!
suites - [SuiteType!]!
latestSuiteAvailability - String
hasHadDealListingMatches - Boolean!
offers - [LandlordOfferType!]!
recommendedDeals - ListingRecommendedDealConnection

Arguments

before - String

after - String

first - Int

last - Int

Example
{
  "id": ID,
  "listingType": ListingTypeEnum,
  "publicNotes": "xyz789",
  "privateNotes": "abc123",
  "created": DateTime,
  "uuid": "xyz789",
  "building": BuildingType,
  "latestSource": ListingLatestSource,
  "website": "xyz789",
  "access": ListingAccessTypeEnum,
  "accessDetails": "xyz789",
  "boosted": true,
  "searchScope": "abc123",
  "rowId": 123.45,
  "agents": [ListingAgentType],
  "brochures": [ListingBrochureType],
  "suites": [SuiteType],
  "latestSuiteAvailability": "abc123",
  "hasHadDealListingMatches": true,
  "offers": [LandlordOfferType],
  "recommendedDeals": ListingRecommendedDealConnection
}

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

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

LeasingProfileType

Fields related to a user's leasing profile.

Field Name Description
isSyndicated - Boolean!

Indicates the user has syndicated with Buildout.

marketAssociation - LeasingUserMarketAssociationType

The user's association with a market on the leasing site.

Example
{
  "isSyndicated": false,
  "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": 123.45,
  "inActiveMarket": true,
  "market": MarketType,
  "otherMarket": "abc123",
  "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!
listingContact - ListingContactType!
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,
  "listingContact": ListingContactType,
  "listing": LeasingListingType,
  "primary": true,
  "rowId": 123.45,
  "company": CompanyType,
  "contactType": "abc123",
  "contactedBy": 987,
  "dateLastContacted": "abc123",
  "email": "abc123",
  "isPrimary": true,
  "name": "abc123",
  "phone": "abc123",
  "user": 123
}

ListingBrochureType

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

ListingContactType

Field Name Description
company - CompanyType
rowId - Float!
Example
{"company": CompanyType, "rowId": 123.45}

ListingCreateInput

Field Name Description
access - object
accessDetails - object
agents - object
boosted - object
building - object
listingType - object
publicNotes - object
searchScope - object
suites - object
website - object
Example
{
  "access": "\"Call For Showing\"",
  "accessDetails": "",
  "agents": [],
  "boosted": false,
  "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

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

ListingRecommendedDealConnection

Field Name Description
pageInfo - PageInfo!

Pagination data for this connection.

edges - [ListingRecommendedDealEdge]!

Contains the nodes in this connection.

Example
{
  "pageInfo": PageInfo,
  "edges": [ListingRecommendedDealEdge]
}

ListingRecommendedDealEdge

A Relay edge containing a ListingRecommendedDeal and its cursor.

Field Name Description
node - TenantBoardDealType

The item at the end of the edge

cursor - String!

A cursor for use in pagination

isNewDeal - Boolean!
Example
{
  "node": TenantBoardDealType,
  "cursor": "xyz789",
  "isNewDeal": true
}

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!
boosted - Boolean!
searchScope - String!
rowId - Float!
agents - [ListingAgentType!]!
brochures - [ListingBrochureType!]!
suites - [SuiteType!]!
latestSuiteAvailability - String
Example
{
  "id": ID,
  "listingType": ListingTypeEnum,
  "publicNotes": "abc123",
  "privateNotes": "abc123",
  "created": DateTime,
  "uuid": "xyz789",
  "building": BuildingType,
  "latestSource": ListingLatestSource,
  "website": "xyz789",
  "access": ListingAccessTypeEnum,
  "accessDetails": "abc123",
  "boosted": false,
  "searchScope": "xyz789",
  "rowId": 987.65,
  "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
boosted - Boolean
building - BuildingUpdateInput
listingType - ListingTypeEnum
publicNotes - String
searchScope - String
website - String
Example
{
  "id": 123,
  "access": ListingAccessTypeEnum,
  "accessDetails": "xyz789",
  "boosted": true,
  "building": BuildingUpdateInput,
  "listingType": ListingTypeEnum,
  "publicNotes": "abc123",
  "searchScope": "abc123",
  "website": "xyz789"
}

ManagedPartnerUserType

Field Name Description
id - ID!

The ID of the object.

firstName - String!
lastName - String!
email - String!
rowId - Float!
externalId - String
partnerSource - String
Example
{
  "id": ID,
  "firstName": "xyz789",
  "lastName": "abc123",
  "email": "abc123",
  "rowId": 987.65,
  "externalId": "abc123",
  "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

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": "abc123",
  "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": "abc123"}

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": "abc123",
  "text": "abc123",
  "subject": "xyz789"
}

ObtainJSONWebTokenInput

Input Field Description
clientMutationId - String
username - String!
password - String!
Example
{"clientMutationId": "xyz789", "username": "xyz789", "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": "xyz789",
  "refreshToken": "abc123"
}

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": "abc123",
  "dealId": 987.65,
  "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": 123,
  "responseText": "abc123",
  "toUserId": 987,
  "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": true,
  "hasPreviousPage": true,
  "startCursor": "abc123",
  "endCursor": "xyz789"
}

PartnerUserType

Field Name Description
id - ID!
firstName - String!
lastName - String!
email - String!
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.

dateJoined - DateTime!
buildingphotoSet - [BuildingPhotoType!]!
suitephotoSet - [SuitePhotoType!]!
floorplanphotoSet - [FloorplanPhotoType!]!
listingcontactUserSet - [ListingContactType!]!
listingcontactContactedbySet - [ListingContactType!]!
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
{
  "id": ID,
  "firstName": "xyz789",
  "lastName": "xyz789",
  "email": "xyz789",
  "password": "xyz789",
  "lastLogin": DateTime,
  "isSuperuser": true,
  "username": "xyz789",
  "isStaff": false,
  "isActive": false,
  "dateJoined": DateTime,
  "buildingphotoSet": [BuildingPhotoType],
  "suitephotoSet": [SuitePhotoType],
  "floorplanphotoSet": [FloorplanPhotoType],
  "listingcontactUserSet": [ListingContactType],
  "listingcontactContactedbySet": [ListingContactType],
  "searchparameters": SearchParametersType,
  "advisor": AdvisorType,
  "offerfeedbackSet": [OfferFeedbackType],
  "alertpreference": AlertPreferenceType,
  "leasingusermarketassociation": LeasingUserMarketAssociationType,
  "leasingalertpreference": LeasingAlertPreferenceType,
  "tenantleadSet": TenantLeadTypeConnection,
  "rowId": 987.65
}

PhotoAliasTypeEnum

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

PhotoSortInput

Input Field Description
id - Int!
photoType - PhotoTypeEnum!
Example
{"id": 987, "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": "abc123"}

RefreshPayload

Field Name Description
payload - GenericScalar!
refreshExpiresIn - Int!
clientMutationId - String
token - String!
refreshToken - String!
Example
{
  "payload": GenericScalar,
  "refreshExpiresIn": 987,
  "clientMutationId": "abc123",
  "token": "xyz789",
  "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": "xyz789"}

RevokePayload

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

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 - object

An optional JWT token permitting an action on behalf of a managed user.

photos - object
listingId - object
clientMutationId - object
Example
{
  "token": "xyz789",
  "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": "xyz789"}

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
brokerTeam - BrokerTeamType!

The broker team associated with this subscription plan.

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.

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.

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
{
  "brokerTeam": BrokerTeamType,
  "introductionRequestsAreAllowedCanUpgrade": false,
  "id": "abc123",
  "listingsAreBoosted": false,
  "listingsAreBoostedCanUpgrade": false,
  "nextServiceTier": BrokerServiceTierEnum,
  "weeklyOfferLimit": 123,
  "weeklyOfferLimitCanUpgrade": false,
  "weeklyOfferLimitReached": true,
  "weeklyOfferLimitUsage": 123
}

SuiteCreateInput

Field Name Description
isAvailable - object
clearHeightFeet - object
docks - object
dockComments - object
driveIns - object
driveInComments - object
kind - object
layout - object
minimumTermMonths - object
number - object
officeCount - object
publicNotes - object
rate - object
rsf - object
Example
{
  "isAvailable": false,
  "clearHeightFeet": 987,
  "docks": 987,
  "dockComments": "",
  "driveIns": 987,
  "driveInComments": "",
  "kind": [SuiteKindTypeEnum],
  "layout": "",
  "minimumTermMonths": 987,
  "number": "",
  "officeCount": 123,
  "publicNotes": "",
  "rate": RateType,
  "rsf": 987
}

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!
photoUrl - String!

Arguments

photoUrlLightbox - String!
photoUrlThumb - String!
Example
{
  "created": DateTime,
  "source": "xyz789",
  "sourceId": "abc123",
  "sortOrder": 123,
  "hidden": true,
  "photoFile": "xyz789",
  "rowId": 123.45,
  "id": 987,
  "isApproved": false,
  "isHidden": false,
  "photoUrl": "xyz789",
  "photoUrlLightbox": "abc123",
  "photoUrlThumb": "abc123"
}

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": 123,
  "number": "xyz789",
  "rsf": 123,
  "rate": RateType,
  "rowId": 987.65,
  "clearHeightFeet": 987,
  "docks": 123,
  "dockComments": "abc123",
  "driveIns": 123,
  "driveInComments": "abc123",
  "floorplanPhotos": [FloorplanPhotoType],
  "isAvailable": true,
  "kind": [SuiteKindTypeEnum],
  "layout": "abc123",
  "minimumTermMonths": 123,
  "officeCount": 123,
  "photos": [SuitePhotoType],
  "publicNotes": "abc123",
  "rentEstimate": 987.65
}

SuiteUpdateInput

Field Name Description
id - object
clearHeightFeet - object
docks - object
dockComments - object
driveIns - object
driveInComments - object
isAvailable - object
kind - object
layout - object
minimumTermMonths - object
number - object
officeCount - object
publicNotes - object
rate - object
rsf - object
Example
{
  "id": 123,
  "clearHeightFeet": 987,
  "docks": 987,
  "dockComments": "xyz789",
  "driveIns": 123,
  "driveInComments": "abc123",
  "isAvailable": true,
  "kind": [SuiteKindTypeEnum],
  "layout": "xyz789",
  "minimumTermMonths": 987,
  "number": "xyz789",
  "officeCount": 987,
  "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.

advisors - [AdvisorType!]!
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.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

connectWithPartner - Boolean!

Indicates that the tenant has explicitly opted in to being connected with a partner broker.

contactdealId - String!
created - String!
dealName - String!
derivedData - DealOrContactDerivedDataType

Rolled up and coalesced data related to a deal. This data will be stale on order of 10-30 minutes.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

desiredLocation - String
industry - String
isRepresented - Boolean!

Indicates that at least one owner is a touring capable advisor.

lastUpdated - DateTime

When the deal was last updated.

leaseStartDate - String
leaseTerm - DealLeaseTermEnum

The lease term desired by the user.

leaseTermMonths - Int
market - MarketType
maturity - String
pipelineStage - String!
pipelineStageEnum - DealPipelineStageTypeEnum
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.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

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

isRequirementVerified - Boolean!

A deal is requirement verified if the stage is currently in opportunity or onwards.

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.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

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
userCanCreateAccount - Boolean!

Whether the user can create a user account to interact with the deal.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

userCorporateCtaPermissions - CorporateDealCtaPermissions

User permissions for corporate-specific actions on a deal.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

userLeasingCtaPermissions - LeasingDealCtaPermissions

User permissions for leasing-specific actions on a deal.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

userTenantRepCtaPermissions - TenantRepDealCtaPermissions

User permissions for TenantRep-specific actions on a deal.

WARNING: This field should not be accessed by third-party partners and is not guaranteed to remain on this interface.

hasOffers - Boolean!
locations - GeoJSONMultiPolygon
rowId - Float!
Example
{
  "dealId": 987.65,
  "id": ID,
  "advisors": [AdvisorType],
  "companyNumberOfEmployees": DealNumberOfEmployeesEnum,
  "companyYearFounded": 123.45,
  "completionPercentage": 123,
  "connectWithPartner": true,
  "contactdealId": "xyz789",
  "created": "xyz789",
  "dealName": "abc123",
  "derivedData": DealOrContactDerivedDataType,
  "desiredLocation": "xyz789",
  "industry": "abc123",
  "isRepresented": true,
  "lastUpdated": DateTime,
  "leaseStartDate": "xyz789",
  "leaseTerm": DealLeaseTermEnum,
  "leaseTermMonths": 123,
  "market": MarketType,
  "maturity": "xyz789",
  "pipelineStage": "abc123",
  "pipelineStageEnum": DealPipelineStageTypeEnum,
  "pipelineStageLastConfirmedDate": "2022-11-30T00:48:48.006Z",
  "isEligibleForIntroductionRequest": false,
  "isRequirementVerified": false,
  "signUpSf": "abc123",
  "spaceSizeHigh": 987.65,
  "spaceSizeLow": 123.45,
  "spaceType": [DealSpaceTypeEnum],
  "submarkets": [SubmarketType],
  "tenantScore": 123.45,
  "tenantSearchTechnique": [
    DealTenantSearchTechniqueEnum
  ],
  "tenantbaseUserIds": [987],
  "transactionType": DealTransactionTypeEnum,
  "useOfSpace": "xyz789",
  "userCanCreateAccount": true,
  "userCorporateCtaPermissions": CorporateDealCtaPermissions,
  "userLeasingCtaPermissions": LeasingDealCtaPermissions,
  "userTenantRepCtaPermissions": TenantRepDealCtaPermissions,
  "hasOffers": true,
  "locations": GeoJSONMultiPolygon,
  "rowId": 987.65
}

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": "abc123",
  "company": "abc123",
  "firstName": "xyz789",
  "lastName": "abc123",
  "fullName": "xyz789",
  "origin": "abc123",
  "phone": "xyz789",
  "addressOfInterest": "abc123",
  "addressComponentsOfInterest": AddressComponentsInput,
  "desiredLeaseTerm": TenantLeadLeaseTermEnum,
  "desiredMoveInDate": "2022-05-30T00:48:48.006Z",
  "desiredSizeSfHigh": 123.45,
  "desiredSizeSfLow": 123.45,
  "monthlyBudgetHigh": 123.45,
  "monthlyBudgetLow": 123.45,
  "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": 123.45
}

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.

canRejectProposal - Boolean!

The user can accept the handoff proposed deal.

canRequestIntroduction - Boolean!

The user has permission to make an introduction request for this deal.

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": false,
  "canRejectProposal": true,
  "canRequestIntroduction": false,
  "canUpgradeToRequestIntroduction": true,
  "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": "xyz789"
}

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": "xyz789",
  "suiteData": SuiteUpdateInput,
  "clientMutationId": "xyz789"
}

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!
brokerProfile - AdvisorType

Returns the currently logged in advisor.

firstName - String!

The user's first name.

hasCorporatePermission - Boolean!

Whether or not the user has permission to access the corporate site.

isInternal - Boolean!

Whether or not the user is internal.

leasingProfile - LeasingProfileType!

Details about the user's leasing profile.

subscriptionPlan - SubscriptionPlanType

Details about the limits and usage of the user's current subscription plan.

tenantProfile - TenantProfileType!

Details about tenant profile

isSyndicated - Boolean!
Example
{
  "id": ID,
  "rowId": 123.45,
  "brokerProfile": AdvisorType,
  "firstName": "xyz789",
  "hasCorporatePermission": true,
  "isInternal": false,
  "leasingProfile": LeasingProfileType,
  "subscriptionPlan": SubscriptionPlanType,
  "tenantProfile": TenantProfileType,
  "isSyndicated": false
}

VerifyInput

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

VerifyPayload

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