---
title: "ViewIt API: JSON data, 4 endpoints, 1 credit per call"
description: "ViewIt API for Canadian rental listings by city, with rents, bedrooms, unit types, photos, listing details and landlords as JSON. 1 credit per successful call."
url: https://perceptlayer.com/apis/viewit
---

[APIs](https://perceptlayer.com/apis) / [Real estate](https://perceptlayer.com/verticals/real-estate) / ViewIt

1 credit per call 4 endpoints 16 datapoints

# ViewIt API

ViewIt API for Canadian rental listings by city, with rents, bedrooms, unit types, photos, listing details and landlords as JSON. 1 credit per successful call.

[Get a free API key](https://perceptlayer.com/signup) Run it below

ViewIt

GET /v1/viewit/search?city\_id=14&bedrooms=2&price\_max=2500 

```
{
  "success": true,
  "data": {
    "items": [
      {
        "listing_id": 21302,
        "detail_path": "37OrioleRd-Toronto-2bdrm-VIT=21302",
        "url": "https://www.viewit.ca/37OrioleRd-Toronto-2bdrm-VIT=21302",
        "address": "37 Oriole Rd",
        "bedrooms_label": "2 bds",
        "bedrooms": 2,
        "unit_type": "apartment",
        "price": 2200,
        "price_from": false,
        "currency": "CAD",
        "latitude": 43.688249,
        "longitude": -79.400144,
        "photo": "https://images.viewit.ca/21302/IMG_4927.jpg",
        "description": "Bright, clean, beautiful and well maintained 2 bedroom available Nov 1st. Centrally located in charming neighbourhood. Hardwood floor, quiet buildin...",
        "sponsored": false,
        "has_video": false
      },
      {
        "listing_id": 184238,
        "detail_path": "670ParliamentStreet-Toronto-2bdrm-VIT=184238",
        "url": "https://www.viewit.ca/670ParliamentStreet-Toronto-2bdrm-VIT=184238",
        "address": "670 Parliament Street",
        "bedrooms_label": "2 bds",
        "bedrooms": 2,
        "unit_type": "apartment",
        "price": 2495,
        "price_from": false,
        "currency": "CAD",
        "latitude": 43.670627,
        "longitude": -79.370942,
        "photo": "https://images.viewit.ca/184238/00_hiyyz05j.jpg",
        "description": "Live, work, play. These days it's all about downtown living. Spacious suites set on manicured grounds, the large bachelor, one bedroom and two bedro...",
        "sponsored": false,
        "has_video": false
      },
      {
        "listing_id": 244248,
        "detail_path": "670ParliamentStreet-Toronto-2bdrm-VIT=244248",
        "url": "https://www.viewit.ca/670ParliamentStreet-Toronto-2bdrm-VIT=244248",
        "address": "670 Parliament Street",
        "bedrooms_label": "2 bds",
        "bedrooms": 2,
        "unit_type": "apartment",
        "price": 2495,
        "price_from": false,
        "currency": "CAD",
        "latitude": 43.670636,
        "longitude": -79.371559,
        "photo": "https://images.viewit.ca/244248/00_ocu0rtpc.jpg",
        "description": "Live, work, play. These days it's all about downtown living. Spacious suites set on manicured grounds, the large bachelor, one bedroom and two bedro...",
        "sponsored": false,
        "has_video": false
      }
    ],
    "pagination": {
      "page": 1,
      "per_page": 5,
      "total": 27,
      "total_pages": 6,
      "max_pages": 20,
      "capped": false,
      "range_from": 1,
      "range_to": 5,
      "has_next_page": true
    },
    "items_dropped": 1,
    "total_includes_dropped": true,
    "applied_filters": {
      "city_id": 14,
      "bedrooms": "2",
      "price_max": "2500"
    }
  },
  "meta": {
    "endpoint_family": "search",
    "attempts": 1,
    "items_dropped": 1,
    "request_id": "req_500dc04b404c4e07b00fea9e9d077ecf",
    "credits_charged": 1,
    "credits_remaining": 1804
  }
}
```

200 OK JSON X-Credits-Used: 1

Recorded from our API and shortened.

Sample data

## What one call returns

A recorded run of `search`: the fields and shapes you will get, shortened to 3 items.

| # | listing\_id integer | detail\_path string | url url | address string | bedrooms\_label string | bedrooms integer | unit\_type string | price integer | price\_from boolean | currency string | latitude number | longitude number | photo url | description string | sponsored boolean | has\_video boolean |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | 21302 | 37OrioleRd-Toronto-2bdrm-VIT=21302 | https://www.viewit.ca/37OrioleRd-Toronto-2bdrm-VIT=21302 | 37 Oriole Rd | 2 bds | 2 | apartment | 2200 | false | CAD | 43.688249 | \-79.400144 | https://images.viewit.ca/21302/IMG\_4927.jpg | Bright, clean, beautiful and well maintained 2 bedroom available Nov 1st. Centrally located in charming neighbourhood. Hardwood floor, quiet buildin... | false | false |
| 2 | 184238 | 670ParliamentStreet-Toronto-2bdrm-VIT=184238 | https://www.viewit.ca/670ParliamentStreet-Toronto-2bdrm-VIT=184238 | 670 Parliament Street | 2 bds | 2 | apartment | 2495 | false | CAD | 43.670627 | \-79.370942 | https://images.viewit.ca/184238/00\_hiyyz05j.jpg | Live, work, play. These days it's all about downtown living. Spacious suites set on manicured grounds, the large bachelor, one bedroom and two bedro... | false | false |
| 3 | 244248 | 670ParliamentStreet-Toronto-2bdrm-VIT=244248 | https://www.viewit.ca/670ParliamentStreet-Toronto-2bdrm-VIT=244248 | 670 Parliament Street | 2 bds | 2 | apartment | 2495 | false | CAD | 43.670636 | \-79.371559 | https://images.viewit.ca/244248/00\_ocu0rtpc.jpg | Live, work, play. These days it's all about downtown living. Spacious suites set on manicured grounds, the large bachelor, one bedroom and two bedro... | false | false |

Recorded from our API · 3 items shown · 16 datapoints per item GET /v1/viewit/search?city\_id=14&bedrooms=2&price\_max=2500

16 datapoints

### Identity

-   listing\_id integer
-   unit\_type string

### Contact

-   url url

### Location

-   address string
-   latitude number
-   longitude number

### Reputation

-   photo url

### Price

-   price integer
-   price\_from boolean
-   currency string

### Other

-   detail\_path string
-   bedrooms\_label string
-   bedrooms integer
-   description string
-   sponsored boolean
-   has\_video boolean

Playground

## Run this API

cURL shell 

```
curl "https://api.perceptlayer.com/v1/viewit/search?city_id=14&bedrooms=2&price_max=2500" \
  -H "X-API-Key: $API_KEY"
```

ViewIt · 4 endpoints

## Endpoints

Every endpoint takes the same key. Open one for its parameters and an example request.

| Endpoint | Required parameters | Cost |
| --- | --- | --- |
| [GET `/v1/viewit/agency`](https://perceptlayer.com/apis/viewit/agency) | `id` +1 optional | 1 credit |
| [GET `/v1/viewit/autocomplete`](https://perceptlayer.com/apis/viewit/autocomplete) | `query` | 1 credit |
| [GET `/v1/viewit/listing`](https://perceptlayer.com/apis/viewit/listing) | `id` +1 optional | 1 credit |
| [GET `/v1/viewit/search`](https://perceptlayer.com/apis/viewit/search) | `city_id` +9 optional | 1 credit |

Overview

## About the ViewIt API

## What you can get

The ViewIt API returns ViewIt rental data as JSON through 4 endpoints.

-   **Search:** `search` takes a `city_id`, with `page`, `bedrooms`, `price_min`, `price_max`, `keyword`, and `furnished`, `loft`, `retirement` and `short_term` (true or 1).
-   **Listings:** `listing` takes an `id`, with `path`.
-   **Agencies:** `agency` takes an `id`, with `page`.
-   **Autocomplete:** `autocomplete` takes a `query`.

The recorded `search` for 2-bedroom rentals in Toronto ( `city_id=14`) up to $2,500 returns `items`, each with `listing_id`, `detail_path`, `url`, `address`, `bedrooms`, `unit_type`, `price`, `price_from`, `currency`, `latitude`, `longitude`, `photo`, `description`, `sponsored` and `has_video`. It also returns `pagination` with a `total` of 27, `total_pages`, `max_pages`, `capped` and `has_next_page`, and `items_dropped`.

## How a call works

Search a city: `GET /v1/viewit/search?city_id=14&bedrooms=2&price_max=2500` with your key in the `X-API-Key` header. Each item's `listing_id` is what `listing` takes as `id`, and its `detail_path` is what it takes as `path`. Check `has_next_page` before asking for the next `page`. Every successful call costs 1 credit; failed calls cost nothing.

Real estate JSON REST MCP

### More real estate APIs

[28Hse](https://perceptlayer.com/apis/28hse) [4zida](https://perceptlayer.com/apis/4zida) [591](https://perceptlayer.com/apis/591-house) [99.co](https://perceptlayer.com/apis/99co) [99acres](https://perceptlayer.com/apis/99acres) [Adondevivir](https://perceptlayer.com/apis/adondevivir) [Apartment List](https://perceptlayer.com/apis/apartment-list) [Apartments.com](https://perceptlayer.com/apis/apartments-com) [Aqar](https://perceptlayer.com/apis/aqar) [Aqarmap](https://perceptlayer.com/apis/aqarmap) [Argenprop](https://perceptlayer.com/apis/argenprop) [athome](https://perceptlayer.com/apis/athome)

Use cases

### Track asking rents by bedroom count in Toronto and other Canadian cities

`Use the ViewIt API to track asking rents by bedroom count in Toronto and other Canadian cities` 

### Find furnished, loft, retirement or short-term rentals

`Use the ViewIt API to find furnished, loft, retirement or short-term rentals` 

### Search listing text for a building or street with \`keyword\`

`` Use the ViewIt API to search listing text for a building or street with `keyword` `` 

### List a landlord's or property manager's units with \`agency\`

`` Use the ViewIt API to list a landlord's or property manager's units with `agency` `` 

FAQ

## Questions

**Do I need a ViewIt account?**

No. You call this ViewIt API with your Perceptlayer key in the \`X-API-Key\` header, with no ViewIt login.

**How much does the ViewIt API cost?**

Each successful call costs one credit. New accounts get free credits to start, and credit packs bring the price down as you scale.

**What format are responses in?**

Every endpoint returns JSON, with no HTML parsing on your side.

**Is the result count capped?**

\`pagination\` says so in \`max\_pages\` and \`capped\`. The recorded Toronto search reports \`capped\` false, with all 27 results reachable.

**Should I build a ViewIt scraper instead?**

You can, but a ViewIt scraper is code you maintain: page changes break it, requests get blocked, and ViewIt's terms govern how you collect data. The ViewIt API gives you 4 endpoints of named JSON fields for 1 credit per successful call, and failed calls cost nothing. A scraper makes sense only for data these endpoints don't return, so check the response in the playground on this page first.

## Try the ViewIt API with 100 free credits

No credit card. Failed calls are never billed.

[Get a free API key](https://perceptlayer.com/signup) [Read the docs](https://docs.perceptlayer.com)
