Portfolio Import [V1]

❗️

Old version of Portfolio Import API

VTS is in the process of migrating clients from V1 to V2. V1 imports do not support the concept of expired leases and only holds either an in-place or committed lease on the space.

No new functionality will be added to the V1 import as of January 2019

Introduction

This is the central repository for information on importing your rent roll data from your accounting system into VTS. On this page, you will find a sample of our XML formatting; a list of elements with description; and tutorials to help you get started with an API integration.

To start using the VTS Portfolio Import API, the API consumer must have an API key and an API secret to authenticate requests. VTS will provide these credentials to authorized API consumers. If you would like to test whether your credentials are valid, please refer to the Authentication section.

Importing a Portfolio

To start the import of a portfolio, you must first confirm you meet the required formatting detailed below in shown in our Sample Response section at the bottom of this page.

Required Import XML Format

  • All required fields must be present for each occurrence of its parent element.
  • The Portfolio Import XML must include at least one Property or Office Park

HTTP Request

POST https://sandbox.vts.com/api/portfolio/v1/portfolio_imports

XML Response

ParameterDescription
statusStatus of the portfolio import that was created:
submitted - waiting to be processed
processing - currently being processed
completed - finished and successful
failed - there was an error with the import
jobidunique identifier of the portfolio import, used to check the import's status

Portfolio Import Status

After a portfolio import has been created, it is possible to check on its
status with its jobid.

HTTP Request

GET https://sandbox.vts.com/api/portfolio/v1/portfolio_imports/<jobid>

XML Response

ParameterDescription
statusStatus of the portfolio import that was created:
submitted - waiting to be processed
processing - currently being processed
completed - finished and successful
failed - there was an error with the import or the xml was in an invalid format
jobidunique identifier of the portfolio import, used to check the import's status
resultresult of the import after it is either completed or failed
curl -u <API Key>:<API Secret> https://sandbox.vts.com/api/portfolio/v1/portfolio_imports/<jobid>

📘

Remember — Replace , and with actual values

The above curl command returns XML structured like this on an import still being processed:

<PortfolioImport>
  <status>processing</status>
  <result></result>
</PortfolioImport>

The above curl command returns XML structured like this on a successful import:

<PortfolioImport>
  <status>complete</status>
  <result>
    <created>
      <office-parks>0</office-parks><
      properties>48</properties>
      <floors>347</floors>
      <spaces>1179</spaces>
      <cities>1</cities>
    </created>
    <errored>
      <SourceID>1000</SourceID>
      <Error>Missing Required Field</Error>
    </errored>
  </result>
</PortfolioImport>

The above curl command returns XML structured like this on a failed import:

<PortfolioImport>
  <status>failed</status>
  <result>Internal Error</result>
</PortfolioImport>

Portfolio Elements

Property

XML representation of a building

ParameterTypeDescriptionRequired
SourceIDStringUnique ID for propertytrue
NameStringThe name of the propertyfalse
AddressXMLThe address of the building see belowtrue
BuildingClassEnumA
B
C
false
FundStringThe building's fundfalse
HasOfficeBooleanDoes this building have office space?false
HasRetailBooleanDoes this bulilding have retail space?false
HasIndustrialBooleanDoes this building have industrial space?false
LeasingCompanyStringThe building's leasing companyfalse
ManagingCompanyStringThe building's managing companyfalse
NumberOfFloorsIntegerTotal number of floors in the buildingfalse
OwnerStringThe building's ownerfalse
RBAIntegerRentable base area (sqft)false
SubmarketStringThe building's submarketfalse
VacantSquareFeetIntegerVacant area (sqft)false
YearBuiltIntegerYear the building was builtfalse
FloorsArrayArray of floors in the building see belowfalse
SpacesArrayArray of units in the building see belowfalse

Portfolio Address

XML representation of a building's address

Nested under Property

ParameterTypeDescriptionRequired
CityStringThe city in which the building is locatedtrue
StateStringThe abbreviation of state in which the building is locatedtrue
StreetStringThe building's street addresstrue
PostalCodeStringThe building's postal codetrue
CountryStringTwo-letter country code (ISO­3166­1 alpha­2) ­ defaults to “US” if unspecifiedfalse

Floor

XML representation of a floor in a building

Nested under Property

ParameterTypeDescriptionRequired
FloorPositionIntegerThe physical position of the floor in the buildingtrue
FloorNameStringThe name of the floorfalse
RentableAreaIntegerRentable area (sqft)false

Portfolio Space

XML representation of a unit in a building

Nested under Property

ParameterTypeDescriptionRequired
SourceIDStringThe unique identifier for a spacetrue
DescriptionStringThe description of the spacefalse
SuiteStringThe suite name of the spacefalse
AvailabilityTypeEnumspecified - available on a future date
immediate
arranged - no clear availability date
not available
false
AvailabilityDateDateThe data a tenant can move into a space
blank unless AvailabilityType is 'specified'
false
FloorNameStringThe name of the floor the space is onfalse
FloorPositionIntegerThe position of the floor within a buildingtrue
FloorCompositionEnumentire
partial
false
ListingDateDateDate the space was listedfalse
MaximumContiguousIntegerThe maximum area (sqft) that a space can be expanded tofalse
MaximumDivisibleIntegerThe amount of units a space can be divided intofalse
PriceIsNegotiableBooleanIs the price negotiable? Defaults to true if no rental rate min/max is setfalse
RemeasuredSpaceAvailableIntegerThe remeasured RSF of the spacefalse
RemovedBooleanIf the space is to be deleted from VTSfalse
RentalPayTypeEnumpsf_month - per square foot, per month
psf_year - per square foot, per year
amt_month - amount per month
amt_year - amount per year
false
RentalRateMaxDecimalHighest asking rentfalse
RentalRateMinDecimalLowest asking rentfalse
SalePriceDecimalSale price if a building is for salefalse
SpaceAvailableIntegerThe RSF of the spacefalse
SpaceConditionEnumraw
core and shell
white box
pre-existing
pre-built
false
SpaceTypeEnumoffice
retail
industrial_warehouse
telecom
storage
flex
parking
amenities
rooftop
other
lab
manufacturing
education
residential
medical_office
restaurant
leisure
false
SubtitleStringThe secondary description of the spacefalse
TransactionTypeEnumlease
sale
false
VacantOnDateDateThe data on which the space is vacantfalse
LeaseXMLThe information about the current lease on the space see belowfalse

Lease

XML representation of the lease on a space

Nested under Space

ParameterTypeDescriptionRequired
SourceIDStringa unique identifier for a leasetrue
LeaseTypeEnumdirect
sublease
renewal - default
false
LeaseCommencementDateDateThe date the lease startedfalse
LeaseExpirationDateDateThe date the lease expiresfalse
LeaseTermStringThe lease's termfalse
TenantXMLInformation about the current tenant see belowfalse

LeaseDealTerms

XML Representation of the lease deal terms on a lease.

Nested under Lease.

ParameterTypeDescriptionRequired
SourceIDStringa unique identifier for the lease termtrue
BaseRentsXMLInformation about the base rentsfalse
FreeRentsXMLInformation about the free rentsfalse
OpExsXMLInformation about the operational expensesfalse
RealEstateTaxesXMLInformation about the real estate taxesfalse
OtherRevenuesXMLInformation about any other revenue we trackfalse
IsMonthToMonthBooleanWhether or not the lease term is month to monthfalse
LeaseMoveOutDateDateWhen the tenant is actually moving outfalse

BaseRents

XML Representation of the base rents on a LeaseDealTerm. There can be many nodes under the tree.

Nested under LeaseDealTerm.

ParameterTypeDescriptionRequired
AmountDecimalThe amount of base rent during this time period in the given unittrue
UnitsStringThe unit of measure for the given amount ($/rsf/year $/rsf/month $/month $/year)true
StartDateDatethe date this rent startstrue
EndDateDatethe date this rent endstrue

FreeRents

XML Representation of the free rents on a LeaseDealTerm. There can be many nodes under the tree.

Nested under LeaseDealTerm.

ParameterTypeDescriptionRequired
AmountDecimalThe amount of free rent during this time period in the given unittrue
UnitsStringThe unit of measure for the given amount ($/rsf/year $/rsf/month $/month $/year)true
StartDateDatethe date this free rent startstrue
EndDateDatethe date thisfree rent endstrue
FreeRentTypeStringthe type of free rent (gross)true

OpExs

XML Representation of the operational expenses on a LeaseDealTerm. There can be many nodes under the tree.

Nested under LeaseDealTerm.

ParameterTypeDescriptionRequired
AmountDecimalThe amount of opex during this time period in the given unittrue
UnitsStringThe unit of measure for the given amount ($/rsf/year $/rsf/month $/month $/year)true
StartDateDatethe date this opex startstrue
EndDateDatethe date this opex endstrue

RealEstateTaxes

XML Representation of the real estate taxes on a LeaseDealTerm. There can be many nodes under the tree.

Nested under LeaseDealTerm.

ParameterTypeDescriptionRequired
AmountDecimalThe amount of tax during this time period in the given unittrue
UnitsStringThe unit of measure for the given amount ($/rsf/year $/rsf/month $/month $/year)true
StartDateDatethe date this tax startstrue
EndDateDatethe date this tax endstrue

OtherRevenues

XML Representation of other revenue on a LeaseDealTerm. There can be many nodes under the tree.

Nested under LeaseDealTerm.

ParameterTypeDescriptionRequired
AmountDecimalThe amount of tax during this time period in the given unittrue
UnitsStringThe unit of measure for the given amount ($/rsf/year $/rsf/month $/month $/year)true
StartDateDatethe date this tax startstrue
EndDateDatethe date this tax endstrue
TypeStringthe type of revenue this is (other)true

Portfolio Tenant

XML Representation of a lease's tenant

Nested under Lease

ParameterTypeDescriptionRequired
CompanyNameStringThe tenant's nametrue
IndustryEnumsee Industry sectionfalse

Industry

Nested under Tenant

IDIndustry
1accounting
2advertising
3apparel & accessories
4architecture
5association / non profit
6automotive
7biotechnology
8clean tech
9construction
10consulting
11consumer products
12aerospace & defense
13diagnostic / medical device
14education
15electronics
16energy
17engineering
18entertainment & leisure
19executive search / staffing
20financial services
21fitness
22food & beverage
23government agency
24grocery
25healthcare (general)
26home improvement / furnishings
27insurance
28legal services
29manufacturing
31mortgage
32newsstand
33nutrition
34other
35pharmaceuticals
36property management
37publishing
38real estate
39restaurant (other)
40wholesale
41salon / spa
42technology
43telecommunications
44therapeutic
45toy / gift / craft
46transportation
47virtual
48restaurant (quick service)
49restaurant (full service)
82media
83oil and gas
84government contractor
85warehousing
118building use
119other services
120business support
121materials
122retail (general)
154agriculture
156mining
157hospitality
158retail bank
159social services
160airlines
161chemicals
162consumer services
163distributors
164it services
165professional & commercial services
166technology hardware
167technology software
168utilities
169children's apparel
170cinemas/theaters
171department store
172drug store
173health & beauty
174jewelry
175men's apparel
176shoes
177retail (specialty)
178women's apparel
179broker dealer
180childcare/play
181hedge fund
182liquor store
183private equity
212acupuncture
213admin/support
214allergy
215ambulatory surgery center
216cancer center
217cardiology
218chiropractic
219dermatology
220dialysis
221emergency medicine
222endocrinology
223endoscopy
224ent/ontology
225eye center
226family medicine
227gastroenterology
228hearing
229hematology
230infectious disease
231infusion
232internal medicine
233multi-specialty
234nephrology
235neurology
236obstetrics & gynecology
237oncology
238ophthamology
239orthopedics
240pain
241pediatrics
242plastic surgery
243podiatry
244psychiatry
245pulmonology
246physical medicine & rehabilitation
247radiology & medical imaging
248rheumatology
249sleep center
250surgery
251urgent care
252urology
253weight & bariatrics
254women's center
255wound care & hyperbaric
256bar
257bookstore
258coffee
259convenience store
260hardware
261personal services
262sporting goods
263restaurant (fast casual)
264dentistry
265pharmacy
298ophthalmology
299serviced office

Right

XML Representation of a lease's encumbrances and options

Nested under Lease

ParameterTypeDescriptionRequired
TypeEnumrofo
rofr
rights to terminate
must lease
renewal
expansion
relocation
parking
sublease
contraction
other
signage
purchase
kick out
rofn
rent review
break
uk - tenant act 1954
radius
exclusive
use
co-tenancy
True
DescriptionTextNotes on the right/option/encumbranceTrue
EffectiveDateDateDate right becomes effectiveFalse
NoticeStartDateDateStart dateFalse
NoticeEndDateDateEnd datefalse
RoleTypeEnumTenant or landlordFalse
FeeNumericDollar value of termination feeFalse
TermIntTerm in number of monthsFalse
NumberofOptionsIntCount of the number of optionsFalse
RateTypeenumPercent or yearFalse
RateNoteVarcharNotes on RateFalse
MinSqFtIntMin SqfootageFalse
MaxSqFtIntMax SqfootageFalse
TenantImprovementNumericTenant improvement $/SqFtFalse

Target

The spaces, floors, or properties that the right covers

Nested under Lease Deal Terms

ParameterTypeDescriptionRequired
TargetSourceIDVarcharSourceID of the property that is being targetedTrue
EntireBuildingEnumTrue/false flag signifying if the entire building is targetedTrue
TargetFloorPositionIntFloor position int that is targetedTrue
TargetSpaceVarcharSourceID of target spaceTrue

** Note that TargetFloorPosition will target all units assigned to that floor. If both TargetFloorPosition AND TargetSpace are included, it will target the entire floor designated AND the TargetSpace

Office Park

XML Representation of an office park

ParameterTypeDescriptionRequired
SourceIDStringThe unique identifier for an office parktrue
NameStringThe name of the office parkfalse
PropertiesArrayCollection of tags of property source idsfalse

Sample XML

<PortfolioData>
  <Properties>
    <Property>
      <SourceID>10000</SourceID>
      <Name>My Building</Name>
      <Address>
        <Street>123 Fake St.</Street>
        <City>New York</City>
        <State>NY</State>
        <PostalCode>10001</PostalCode>
        <Country>US</Country>
      </Address>
      <BuildingClass>A</BuildingClass>
      <Fund>My Fund</Fund>
      <HasOffice>true</HasOffice>
      <HasRetail />
      <HasIndustrial />
      <LeasingCompany />
      <ManagingCompany />
      <NumberOfFloors>2</NumberOfFloors>
      <Owner>The Owner</Owner>
      <RBA>2000</RBA>
      <Submarket>Chelsea</Submarket>
      <VacantSquareFeet>0</VacantSquareFeet>
      <YearBuilt />
      <Floors>
        <Floor>
          <FloorName>1st Floor</FloorName>
          <FloorPosition>1</FloorPosition>
          <RentableArea>1000</RentableArea>
        </Floor>
        <Floor>
          <FloorName>2nd Floor</FloorName>
          <FloorPosition>2</FloorPosition>
          <RentableArea>2000</RentableArea>
        </Floor>
      </Floors>
      <Spaces>
        <Space>
          <SourceID>10000-01-01</SourceID>
          <Description>Great space on the first floor</Description>
          <Suite>0101</Suite>
          <AvailabilityType>not available</AvailabilityType>
          <AvailabilityDate />
          <FloorName>1st Floor</FloorName>
          <FloorPosition>1</FloorPosition>
          <FloorComposition>entire</FloorComposition>
          <ListingDate />
          <MaximumContiguous />
          <MaximumDivisible />
          <PriceIsNegotiable>true</PriceIsNegotiable>
          <RentalPayType>psf_month</RentalPayType>
          <RentalRateMax />
          <RentalRateMin />
          <RemeasuredSpaceAvailable>950</RemeasuredSpaceAvailable>
          <SalePrice />
          <SpaceAvailable>1000</SpaceAvailable>
          <SpaceCondition />
          <SpaceType />
          <Subtitle />
          <TransactionType>lease</TransactionType>
          <VacantOnDate>2050-01-01</VacantOnDate>
          <Lease>
            <SourceID>lease123</SourceID>
            <LeaseType>direct</LeaseType>
            <LeaseCommencementDate>2010-10-01</LeaseCommencementDate>
            <LeaseExpirationDate>2015-12-31</LeaseExpirationDate>
            <LeaseTerm>999</LeaseTerm>
            <Tenant>
              <CompanyName>Tenant Company Inc.</CompanyName>
              <Industry>consulting</Industry>
            </Tenant>
            
            <LeaseDealTerms>
              <SourceID>lease123~0</SourceID>
              <RentableArea>1125</RentableArea>
              <Retail/>
              <BaseRents>
                <BaseRent>
                  <Amount>4721.05</Amount>
                  <EndDate>2013-12-31</EndDate>
                  <StartDate>2010-01-01</StartDate>
                  <Units>$/month</Units>
                </BaseRent>
                <BaseRent>
                  <Amount>4917.27</Amount>
                  <EndDate>2014-12-31</EndDate>
                  <StartDate>2014-01-01</StartDate>
                  <Units>$/month</Units>
                </BaseRent>
                <BaseRent>
                  <Amount>5064.79</Amount>
                  <EndDate>2015-12-31</EndDate>
                  <StartDate>2015-01-01</StartDate>
                  <Units>$/month</Units>
                </BaseRent>
              </BaseRents>
              <FreeRents>
                <FreeRent>
                  <Amount>-8250</Amount>
                  <EndDate>2010-05-31</EndDate>
                  <FreeRentType>gross</FreeRentType>
                  <StartDate>2010-01-01</StartDate>
                  <Units>$/month</Units>
                </FreeRent>
              </FreeRents>
              <OpExs>
                <OpEx>
                  <Amount>938</Amount>
                  <EndDate>2010-06-30</EndDate>
                  <StartDate>2010-07-01</StartDate>
                  <Units>$/month</Units>
                </OpEx>
              </OpExs>
              <RealEstateTaxes>
                <RealEstateTax>
                  <Amount>417</Amount>
                  <EndDate>2010-06-30</EndDate>
                  <StartDate>2010-07-01</StartDate>
                  <Units>$/month</Units>
                </RealEstateTax>
              </RealEstateTaxes>
              <OtherRevenues>
                <OtherRevenue>
                  <Amount>247</Amount>
                  <EndDate>2014-06-30</EndDate>
                  <StartDate>2013-07-01</StartDate>
                  <Type>other</Type>
                  <Units>$/month</Units>
                </OtherRevenue>
              </OtherRevenues>
            </LeaseDealTerms>
            <Rights>
              <Right>
                <Type>rofo</Type>
                <Description>tenant has a rofo on suite 100 and all of floor 2</Description>
                <NoticeStartDate>20014-12-20</NoticeStartDate>
                <NoticeEndDate>2021-02-20</NoticeEndDate>
                <EffectiveDate></EffectiveDate>
                <ExpansionEndDate></ExpansionEndDate>
                <RoleType>landlord</RoleType>
                <Fee>0.00</Fee>
                <Term></Term>
                <RateType>fixed</RateType>
                <RateNote></RateNote>
                <MinSqFt>0</MinSqFt>
                <MaxSqFt>0</MaxSqFt>
                <TenantImprovement></TenantImprovement>
                <Targets>
                  <Target_Properties>
                    <Target_Property>
                      <TargetSourceID>100</TargetSourceID>
                      <EntireBuilding>false</EntireBuilding>
                      <Target_Floors>
                        <TargetFloorPosition>2</TargetFloorPosition>
                      </Target_Floors>
                      <Target_Spaces>
                        <TargetSourceID>100-01-01</TargetSourceID>
                      </Target_Spaces>
                    </Target_Property>
                  </Target_Properties>
                </Targets>
              </Right>
            </Rights>
          </Lease>
        </Space>
      </Spaces>
    </Property>
  </Properties>
  <OfficeParks>
    <OfficePark>
      <SourceID>20000</SourceID>
      <Name>My Office Park</Name>
      <Properties>
        <SourceID>10000</SourceID>
      </Properties>
    </OfficePark>
  </OfficeParks>
</PortfolioData>

This document is proprietary and confidential. No part of this document may be disclosed in any manner to a third party without the prior written consent of View the Space Inc.


Interested in using our Next-Generation API Suite? Request Access by emailing [email protected]