Portfolio Export [Legacy]
This
Portfolio Export
API endpoint is deprecated.11/2021 update:
While there are currently no plans to sunset this API endpoint, no new features will be added to this endpoint as of 11/2021. Please use our next-gen APIs at https://readme.vts.com/reference.
Introduction
This is the central repository for information on exporting data for your office parks, properties, spaces, leases, and terms from 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 Export 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.
Requests
To start the export of a portfolio the API can be accessed by sending an HTTP request to https://app.vts.com/api/portfolio/v1/portfolio_exports with the Authorization header described in the Authentication section (also shown below)
curl -u <API Key>:<API Secret> -X POST https://app.vts.com/api/portfolio/v1/portfolio_exports
curl -u <API Key>:<API Secret> -X POST https://sandbox.vts.com/api/portfolio/v1/portfolio_exports
Make sure to replace and with your API key and API Secret, respectively.
The above command returns XML structured like this:
<PortfolioExport>
<status>submitted</status>
<jobid>12345</jobid>
</PortfolioExport>
Node | Type | Definition |
---|---|---|
status | string | Status of the portfolio export that was created: submitted - waiting to be processed processing - currently being processed completed - finished and successful failed - there was an error with the export |
jobid | string | unique identifier of the portfolio export, used to check the export’s status and retrieve data |
Portfolio Export Status
To check the status of a portfolio export, use GET to see the results:
curl -u <API Key>:<API Secret> https://api.vts.com/api/portfolio/v1/portfolio_exports/<jobid>
Remember — Replace , and with actual values
The XML response should be as follows:
<PortfolioExport>
<jobid>12345</jobid>
<status>completed</status>
</PortfolioExport>
Portfolio Export Data
To view the data of a completed portfolio export once its status is "completed", run the below command. A sample of the response can be found at the end of this page.
You may only view the data of a portfolio export once it is complete.
curl -u <API Key>:<API Secret> https://api.vts.com/api/portfolio/v1/portfolio_exports/<jobid>/data
curl -u <API Key>:<API Secret> https://sandbox.vts.com/api/portfolio/v1/portfolio_exports/<jobid>/data
Status Codes
The VTS API uses the following status and error codes:
Status | Description |
---|---|
200 | Success – The request was successful |
202 | Accepted – The request was accepted and will be processed |
401 | Unauthorized - incorrect credentials |
403 | Forbidden – API Key and/or API Secret is missing or incorrect |
404 | Not Found – The specified resource could not be found |
500 | Internal Server Error – We had a problem with our server and have been notified. Try again later |
Portfolio Export Data Elements
Office Parks
Node | Type | Description |
---|---|---|
Name | Text | Name of the Office Park |
SourceID | Text | SourceID of the Office Park |
Properties | Array | An array of the Properties' sourceids that exist under this Office Park |
Properties
Node | Type | Description |
---|---|---|
Id | Integer | VTS assigned unique ID for that building |
ClientCompanyId | Integer | VTS assigned client company ID for that building |
ClientCompanyName | String | Client Company that this building belongs to. |
Address | Array of XML string nodes | String nodes that break down the address of this property into City, State, Street, PostalCode, and Country |
BuildingClass | String | Class of the building |
CreatedDate | DateTime | VTS generated creation time of this property object in the database |
UpdatedAt | DateTime | VTS generated timestamp of when the property was last updated (either by a user or by system background jobs) |
Fund | String | What fund this building belongs to |
Description | Text | Description of the building |
HasOffice | Boolean | Whether or not this building has Office-type space. User generated. |
HasRetail | Boolean | Whether or not this building has Retail-type space. User generated |
HasIndustrial | Boolean | Whether or not this building has Industrial-type space. User generated. |
LeasingCompany | String | User-generated string for the company responsible for leasing this building. |
ManagingCompany | String | User-generated string for the company responsible for managing this building |
Number of floors | Integer | User-generated field for how many floors this building has. |
Owner | String | User-generated field for the owner of this building |
RBA | Integer | User-generated field for the rentable building area |
Submarket | String | User-assigned field for the submarket of this building. |
Market | String | User-assigned field for the market of this building. |
VacantArea | String | VTS-generated amount for how much area there is vacant in the building, based on the RBA of your building less the sum of the occupied spaces' areas. |
Removed | Boolean | Whether or not this building is removed from the VTS app. |
Floors | XML Array | XML array of the floor objects in VTS. See below. |
Spaces | XML Array | XML array of the space objects (and their leases) in VTS. See below. |
Floors
Node | Type | Description |
---|---|---|
FloorName | String | The name of the floor as appears on the stacking plan |
FloorPosition | Integer | The order of the floor as it appears on the stacking plan |
RentableArea | Integer | The total area of the floorplate as it appears on the stacking plan |
Spaces
Node | Type | Description |
---|---|---|
AvailabilityDate | Date | When the space is available |
AvailabilityType | Enum | One of either: - immediate - arranged - specified - not available |
Description | Text | Description of the space |
FloorComposition | Enum | One of either: - partial - entire |
InternalNotes | Text | Internal notes on the space |
ListingDate | Date | User-generated for when the space was listed on |
MaximumContiguous | Integer | Maximum contiguous area of this suite |
MinimumDivisible | Integer | Minimum divisible area of this suite |
PriceIsNegotiable | Boolean | Whether or not the price is negotiable |
Removed | Boolean | Whether or not this suite is removed |
RentalPayType | Enum | What unit the marketed rent is being listed at |
RentalRateMax | Decimal | Max rental rate it is being listed as |
RentalRateMin | Decimal | Minimum rental rate it is being listed as |
RemeasuredSpaceAvailable | Integer | Remeasured space available |
SourceID | String | System-generated sourceID for this suite |
Suite | String | Name of the space |
TransactionType | Enum | Whether this space is for: - sale - lease |
VacantOnDate | Date | The user-generated date for when this suite is vacant |
MarketRent | Decimal | User-generated field to memorialize the comparable market rent for this suite. |
CreatedAt | DateTime | System-generated datetime for when this space as created |
UpdatedAt | DateTime | System-generated datetime for when this space was last updated. Includes user updates as well as system background jobs. |
TokenizedID | String | Unique tokenized string slug for this space |
PublicFlag | Boolean | Whether or not this space's marketing page is listed on the VTS marketing page |
SpaceType | Enum | The type of space this is. Options are: - Amenities - Education - Flex - Industrial / Warehouse - Lab - Leisure - Manufacturing - Medical Office - Office - Other - Parking - Residential - Restaurant - Retail - Rooftop - Storage - Telecom |
Lease | XML Array | The current in-place Lease on this space. |
Leases
Node | Type | Description |
---|---|---|
LeaseExpirationDate | Date | When the Lease will expire |
LeaseCommencementDate | Date | When the Lease commenced |
ExecutionDate | Date | When the Lease was executed |
LeaseTerm | Integer | How many months the lease is for (user generated) |
LeaseStructure | Enum | Structure of the lease. - Triple Net - Full Service Gross - Modified Gross |
SourceId | String | Client system-generated sourceId of the lease. |
Industry | Enum | The industry of the lease. See Industry section under Import API for full list |
CreatedAt | DateTime | System-generated datetime for when the Lease was created |
UpdatedAt | DateTime | System-generaated datetime for when the Lease was last updated (either by user or by system background jobs) |
Rights | XML Array | XML Array of nodes. See below. |
LeaseDealTerms | XML Array | XML Array of nodes. See below. |
Tenant | XML Nodes | XML node of the VTS-ID and Company name of the actual tenant on this lease. |
ID | String | VTS generated identification number for the specific lease |
Rights
Node | Type | Description |
---|---|---|
Type | Enum | The type of Right this Lease has. One of: - audit rights - break - cap on rates - contraction - co-tenancy - exclusive - exclusive use - expansion - generator rights - go dark - kick out - landlord & tenant act 1954 - make good - must lease - other - parking - purchase - radius - relocation - renewal - rent review - rights to terminate - rofn - rofo - rofr - set off rights - signage - special provisions - storage - sublease - use |
Description | Text | Description set on the Right |
EffectiveDate | Date | When the Right is effective |
NoticeStartDate | Date | First day notice can be given (if applicable) |
NoticeEndDate | Date | Last day notice can be given (if applicable) |
RoleType | Enum | One of either tenant or landlord. Only applicable for certain rights. |
Fee | Integer | Fee that must be paid. Typically only applicable for terminations |
RateType | Enum | One of - % of FMV - $/sf |
RateNote | String | Note on the Rate |
MinSqFt | Integer | Minimum square footage. Applicable for certain Rights. |
MaxSqFt | Integer | Maximum square footage. Applicable for certain Rights. |
TenantImprovement | Decimal | Tenant Improvement on the Right. Typically applicable for Expansion. |
ExpansionEndDate | Date | Last date for Expansion |
Targets | XML array | Node describing which target spaces/floors/properties this right can target. Typically targeting is done by Object SourceID. |
LeaseDealTerms
Node | Type | Description |
---|---|---|
RentableArea | Integer | Area of the space that the individual lease deal term covers |
SecurityDeposit | Decimal | Amount of Security deposit on that lease deal term |
NEROverride | Decimal | Overriden NER of the Lease Deal Term |
MiscDescription | Text | Description on that lease deal term |
SourceID | String | Identifier used by VTS for integrated data |
IsMonthToMonth | Boolean | Whether or not this lease term is in a month to month status |
MoveOutDate | Date | The move out date for this lease |
Retail | XML Array | XML Array with Retail-specific fields for retail lease terms |
BaseRents | XML Array | XML Array of all BaseRents as part of this lease term |
FreeRents | XML Array | XML Array of all FreeRents as part of this lease term |
OpExs | XML Array | XML Array of all OpExs as part of this lease term |
RealEstateTaxes | XML Array | XML Array of all RealEstateTaxes as part of this lease term |
OtherRevenues | XML Array | XML Array of all OtherRevenue as part of this lease term |
Individual nodes
Node | Type | Description |
---|---|---|
StartDate | Date | Starting date of the rent schedule |
EndDate | Date | Ending date of the rent schedule |
Amount | Decimal | Amount of rent for that period |
Units | string | What unit the amount of rent is in. |
FreeRent
Node | Type | Description |
---|---|---|
StartDate | Date | Starting date of the free rent |
EndDate | Date | Ending date of the free rent |
Amount | Decimal | Amount of free rent |
Units | string | What unit the amount of free rent is in. |
FreeRentType | string | Type of free rent. Either gross or net |
OpEx
Node | Type | Description |
---|---|---|
StartDate | Date | Starting date of the expense period |
EndDate | Date | Ending date of the expense period |
Amount | decimal | Amount of the Operational Expense |
Units | string | What unit the amount of rent is in. |
RealEstateTax
Sample Response
<?xml version="1.0" encoding="UTF-8"?>
<PortfolioExport>
<jobid>7967180d445af95d</jobid>
<PortfolioData>
<OfficeParks>
<OfficePark>
<Name>Parkside Terrace</Name>
<SourceID/>
<CreatedDate>2014-03-13T01:01:56Z</CreatedDate>
<Properties>
<SourceId>ABC123</SourceId>
<SourceId>XYZ456</SourceId>
<SourceId>...</SourceId>
</Properties>
</OfficePark>
<OfficePark>
...
</OfficePark>
</OfficeParks>
<Properties>
<Property>
<Id>15483</Id>
<ClientCompanyID>23</ClientCompanyID>
<ClientCompanyName>VTS Sales Demo Account</ClientCompanyName>
<SourceID>ABC123</SourceID>
<Name>Parkside Place</Name>
<Address>
<City>Dallas</City>
<State>TX</State>
<Street1>1717 Main Street</Street1>
<PostalCode>75201</PostalCode>
<Country>United States</Country>
</Address>
<BuildingClass>A</BuildingClass>
<CreatedDate>2016-02-05T13:22:33Z</CreatedDate>
<UpdatedAt>2017-06-14T14:42:02Z</UpdatedAt>
<Fund/>
<Description>Parkside is the ultimate location for both work and play.</Description>
<HasOffice>true</HasOffice>
<HasRetail>false</HasRetail>
<HasIndustrial>false</HasIndustrial>
<LeasingCompany/>
<ManagingCompany>LPC Realty Advisors</ManagingCompany>
<NumberOfFloors>15</NumberOfFloors>
<Owner/>
<RBA>198000</RBA>
<Submarket/>
<Market>south</Market>
<VacantArea>78665</VacantArea>
<LeaseRollArea>69236</LeaseRollArea>
<SpaceAvailable>13810</SpaceAvailable>
<OfficeParkID/>
<YearBuilt>1984</YearBuilt>
<TokenizedID>parkside-place-1717-main-street</TokenizedID>
<LeasingActivityEnabled>true</LeasingActivityEnabled>
<OccupiedSquareFeet>119335</OccupiedSquareFeet>
<VacancyRate>0</VacancyRate>
<Removed>false</Removed>
<Floors>
<Floor>
<FloorName>1</FloorName>
<FloorPosition>1</FloorPosition>
<RentableArea>16500</RentableArea>
</Floor>
<Floor>
<FloorName>2</FloorName>
<FloorPosition>2</FloorPosition>
<RentableArea>16500</RentableArea>
</Floor>
<Floor>
...
</Floor>
</Floors>
<Spaces>
<Space>
<AvailabilityDate>2017-01-01</AvailabilityDate>
<AvailabilityType>immediate</AvailabilityType>
<Description>Generic office space</Description>
<FloorComposition>partial</FloorComposition>
<FloorName>2</FloorName>
<FloorPosition>2</FloorPosition>
<InternalNotes>Needs renovation</InternalNotes>
<ListingDate>2017-01-01</ListingDate>
<MaximumContiguous>10000</MaximumContiguous>
<MinimumDivisible>5000</MinimumDivisible>
<OccupancyStatus>vacant</OccupancyStatus>
<PriceIsNegotiable>false</PriceIsNegotiable>
<Removed>false</Removed>
<RentalPayType>psf_year</RentalPayType>
<RentalRateMax>17.5</RentalRateMax>
<RentalRateMin>16.5</RentalRateMin>
<RemeasuredSpaceAvailable>9000</RemeasuredSpaceAvailable>
<SourceID>ABC123~201B</SourceID>
<SpaceAvailable>9668</SpaceAvailable>
<SpaceCondition>pre-existing</SpaceCondition>
<Suite>201B</Suite>
<TransactionType>lease</TransactionType>
<VacantOnDate>2016-12-31</VacantOnDate>
<MarketRent>17.0</MarketRent>
<CreatedAt>2016-02-05T14:03:42Z</CreatedAt>
<UpdatedAt>2016-05-16T08:31:06Z</UpdatedAt>
<TokenizedID>parkside-place-1717-main-street-2nd-floor-unit-201B-aa189423ae</TokenizedID>
<PublicFlag>false</PublicFlag>
<SpaceType>office</SpaceType>
<Lease>
<LeaseExpirationDate>2027-08-31</LeaseExpirationDate>
<LeaseCommencementDate>2017-03-01</LeaseCommencementDate>
<ExecutionDate>2017-01-31</ExecutionDate>
<LeaseTerm>126</LeaseTerm>
<LeaseStructure>triple net</LeaseStructure>
<SourceID/>
<Industry>retail</Industry>
<CreatedAt>2017-02-17T19:20:38Z</CreatedAt>
<UpdatedAt>2017-02-17T19:20:38Z</UpdatedAt>
<Rights>
<Right>
<Type>rofr</Type>
<Description>This is a right of first refusal</Description>
<EffectiveDate>2016-01-01</EffectiveDate>
<NoticeStartDate>2017-01-01</NoticeStartDate>
<NoticeEndDate>2017-03-01</NoticeEndDate>
<RoleType/>
<Fee/>
<Term/>
<RateType>fixed</RateType>
<RateNote/>
<MinSqFt/>
<MaxSqFt/>
<TenantImprovement/>
<ExpansionEndDate/>
<Targets>
<Target_Properties>
<Target_Property>
<TargetSourceID>XYZ456</TargetSourceID>
<EntireBuilding>false</EntireBuilding>
<Target_Floors/>
<Target_Spaces>
<TargetSourceID>XYZ456~552A</TargetSourceID>
</Target_Spaces>
</Target_Property>
</Target_Properties>
</Targets>
</Right>
<Right>
...
</Right>
</Rights>
<LeaseDealTerms>
<LeaseDealTerm>
<RentableArea>9668</RentableArea>
<SecurityDeposit/>
<NEROverride/>
<MiscDescription/>
<SourceID/>
<Retail>
<AnnualSalesGrowthRate/>
<PercentRate/>
<EstimatedSales/>
<UnnaturalBreakpoint/>
</Retail>
<BaseRents>
<BaseRent>
<StartDate>2017-03-01</StartDate>
<EndDate>2018-02-28</EndDate>
<Amount>20947.33</Amount>
<Units>month</Units>
</BaseRent>
<BaseRent>
<StartDate>2018-03-01</StartDate>
<EndDate>2019-02-28</EndDate>
<Amount>21954.42</Amount>
<Units>month</Units>
</BaseRent>
<BaseRent>
<StartDate>2019-03-01</StartDate>
<EndDate>2020-02-29</EndDate>
<Amount>22961.5</Amount>
<Units>month</Units>
</BaseRent>
<BaseRent>
...
</BaseRent>
</BaseRents>
<FreeRents>
<FreeRent>
<StartDate>2017-03-01</StartDate>
<EndDate>2017-08-31</EndDate>
<Amount>-26587.0</Amount>
<Units>month</Units>
<FreeRentType>net</FreeRentType>
<Percentage>100.0</Percentage>
</FreeRent>
<FreeRent>
...
</FreeRent>
</FreeRents>
<OpExs>
<OpEx>
<StartDate>2017-03-01</StartDate>
<EndDate>2027-08-31</EndDate>
<Amount>-1611.33</Amount>
<Units>month</Units>
<LeaseType/>
<Description/>
</OpEx>
</OpExs>
<RealEstateTaxes>
<RealEstateTax>
<StartDate>2017-03-01</StartDate>
<EndDate>2027-08-31</EndDate>
<Amount>-4028.33</Amount>
<Units>month</Units>
<LeaseType/>
<Description/>
</RealEstateTax>
</RealEstateTaxes>
<OtherRevenues/>
</LeaseDealTerm>
</LeaseDealTerms>
<Tenant>
<Id>408320</Id>
<CompanyName>Amazon, Inc</CompanyName>
</Tenant>
</Lease>
</Space>
<Space>
...
</Space>
</Spaces>
</Property>
<Property>
...
</Property>
</Properties>
</PortfolioData>
</PortfolioExport>
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.
Updated almost 3 years ago