# Casita Student Accommodation Scraper \[💰$3/1000 results] (`confidential_gnat/casita-property-scraper`) Actor

Scrapes student accommodation listings from Casita, including property details, room types, pricing and facilities at just $3 per 1000 results.

- **URL**: https://apify.com/confidential\_gnat/casita-property-scraper.md
- **Developed by:** [ActorFlow](https://apify.com/confidential_gnat) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Casita Student Accommodation Scraper

Scrapes student accommodation listings from [Casita](https://www.casita.com/), a global student housing marketplace. For each property it extracts the name, address, city/country, provider, pricing, rating, facilities, and every room type with its description and images. Output is a structured JSON dataset, also downloadable as CSV or Excel.

**Target website:** [casita.com](https://www.casita.com/)

### ⚖️ Legality of this actor

This actor only collects data that is already publicly visible on Casita's listing and property pages — no login, paywall, or private account content is accessed. Scraping publicly available data is generally considered legal (see *hiQ Labs v. LinkedIn*). You are responsible for complying with Casita's Terms of Service and any applicable data protection laws (e.g. GDPR/CCPA) when using this data.

### 💡 Use Case

Student housing platforms, relocation services, and market researchers who need structured, up-to-date accommodation listings and pricing across cities and countries without manually browsing Casita.

### 🏭 Industry

Real Estate, Education & EdTech, Travel & Hospitality, Market Research

### 📤 Output

A structured JSON dataset (exportable to CSV/Excel) with one record per property: `id`, `name`, `address`, `url`, `country`, `city`, `provider`, `priceStructure`, `minPrice`, `rating`, `totalRooms`, `latitude`, `longitude`, `description`, `facilities`, `rooms` (array with per-room name, description, area, images), and `images`.

### 🌐 Domain

Student accommodation listing extraction (Casita)

### 🏷️ Label

`casita`, `student-accommodation`, `real-estate-scraper`, `property-scraper`, `housing-data`

### ✨ Features

- **Property listing extraction** — name, address, pricing, rating, facilities, room types, and images for every accommodation
- **Automatic URL detection** — give it a city search URL or a direct property URL, it detects and handles both
- **Pagination support** — automatically follows every search-results page for a city
- **Whole-site crawl mode** — optionally crawl every country and city Casita lists, instead of only your start URLs
- **Run-to-run caching** — optionally skip properties already scraped in a previous run under the same project name
- **Proxy support** — works without a proxy by default; datacenter/residential proxies can be enabled if needed

### 🔧 Input Configuration

| Field                | Type    | Required | Default  | Description                                                                      |
| -------------------- | ------- | -------- | -------- | -------------------------------------------------------------------------------- |
| `startUrls`          | array   | ✅       | —        | Casita city search URLs or property detail URLs. Type is detected automatically. |
| `maxItems`           | integer | —        | 3        | Max properties to scrape per start URL (or per city, in whole-site mode).        |
| `scrapeWholeSite`    | boolean | —        | false    | Ignore Start URLs and crawl every country/city on Casita's sitemap.              |
| `cacheProjectName`   | string  | —        | —        | Optional. Skips properties already scraped under this name in a previous run.    |
| `proxyConfiguration` | object  | —        | no proxy | Standard Apify proxy configuration.                                              |

**Supported URL types:**

- Search (city) page: `https://www.casita.com/student-accommodation/australia/sydney`
- Property detail page: `https://www.casita.com/student-accommodation/1795-link2-sydney-sydney-australia`

### 📦 Output

1 output view (**Overview**) showing a compact table of `name`, `city`, `country`, `provider`, `minPrice`, `rating`, and `url` for each property.

**Sample output:**

```json
{
    "id": 755,
    "name": "Scape Sydney Central",
    "address": "483 Wattle Street, Ultimo, NSW, 2007",
    "url": "https://www.casita.com/student-accommodation/755-scape-sydney-central-sydney-australia",
    "country": "Australia",
    "city": "Sydney",
    "provider": "Scape Australia",
    "priceStructure": "Week",
    "minPrice": { "amount": "AU$489", "period": "Week", "currency": "AU$" },
    "rating": 3.6,
    "totalRooms": 1,
    "latitude": "-33.882622800000000",
    "longitude": "151.197540700000000",
    "description": "Scape Sydney Central is a Sydney student accommodation that offers twin en-suite rooms...",
    "facilities": [],
    "rooms": [
        {
            "id": 214095,
            "name": "Single Bed, Twin Room In 8 Bed Apartment",
            "description": "A twin room in an 8-bed apartment features a single bed, shared ensuite bathroom...",
            "areaSize": null,
            "images": [
                "https://images.casita.com/uploads/buildings/755/room/214095/orig/scape-sydney-central--....jpeg"
            ]
        }
    ],
    "images": ["https://images.casita.com/uploads/buildings/755/building/thumb/....jpeg"]
}
```

### 💡 Uses of This Data

- Comparing student accommodation prices across cities and providers
- Feeding a housing-search or relocation app with structured listings
- Market research on room types, amenities, and availability trends
- Monitoring new listings or price changes over time
- Lead generation for accommodation providers and student services

### 🚀 How to Use

1. [Sign up](https://apify.com/sign-up) for a free Apify account — includes **$5 monthly credit**.
2. Open the actor page and click **Try for free**.
3. Fill in the **Input** fields (at least one start URL is required, unless using whole-site mode).
4. Click **Start** and wait for the run to complete.
5. Download results from the **Output** tab in JSON, CSV, or Excel format.

You can also run this actor via the [Apify API](https://docs.apify.com/api/v2) or integrate it directly into your workflows using [Zapier](https://zapier.com/apps/apify), [Make](https://www.make.com/), or [n8n](https://n8n.io/).

### ⚠️ Limitations & Known Issues

- **Whole-site crawls take time** — Casita lists thousands of cities and properties; set `maxItems` and pick specific start URLs for quick runs.
- **Regional pricing** — prices are shown in the currency Casita serves for that region and may vary by property.

### 📝 Notes

- **Proxy recommended for large-scale scraping** — For high-volume or whole-site runs, enable a datacenter (or residential, if datacenter is blocked) proxy to avoid blocks.
- **API integration** — This actor can be called as an API from any automation platform (Zapier, Make, n8n, custom scripts).

### 🔗 Other Actors

- 🎓 [AmberStudent Accommodation Scraper](https://apify.com/confidential_gnat/amberstudent-accomodation-scraper) — extracts student accommodation listings from AmberStudent, including pricing, availability, photos, amenities, location, and reviews
- 🏠 [UniversityLiving Housing Scraper](https://apify.com/confidential_gnat/universityliving-housing-scraper) — extracts student housing data (addresses, prices, amenities, ratings, images) from universityliving.com for any searched city
- ✅ [Rightmove Listing Availability Checker](https://apify.com/confidential_gnat/rightmove-listing-availability-checker) — checks whether Rightmove property listings are still active or have been removed, at scale
- ⛪ [ChurchFinder Scraper](https://apify.com/confidential_gnat/churchfinder-scraper) — scrapes church listings and profiles from Church Finder, including name, denomination, address, phone, service times, and reviews
- 🏘️ [Rightmove Scraper Updated](https://apify.com/confidential_gnat/rightmove-scraper-updated) — extracts rental property data from Rightmove search results, including pricing, features, agent info, images, and floorplans

### 💬 Support & Contact

If you encounter any issues or have questions, please [open an issue](https://github.com/) or reach out via the [Apify Community Forum](https://community.apify.com/).

You can also find more of our actors on the [Apify Store](https://apify.com/store).

# Actor input Schema

## `startUrls` (type: `array`):

Casita search (city) or property detail URLs. The type of each URL is detected automatically.

## `maxItems` (type: `integer`):

Maximum number of properties to scrape for each start URL (or, in whole-site mode, for each city page).

## `scrapeWholeSite` (type: `boolean`):

Ignore Start URLs and crawl every country and city listed on the Casita sitemap.

## `cacheProjectName` (type: `string`):

Optional. When set, properties already scraped under this project name in a previous run are skipped instead of being scraped again.

## `proxyConfiguration` (type: `object`):

Casita responds fine without a proxy. Enable datacenter proxies first if you start seeing blocks, and residential only if datacenter still fails.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.casita.com/student-accommodation/australia/sydney"
    }
  ],
  "maxItems": 3,
  "scrapeWholeSite": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.casita.com/student-accommodation/australia/sydney"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("confidential_gnat/casita-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.casita.com/student-accommodation/australia/sydney" }] }

# Run the Actor and wait for it to finish
run = client.actor("confidential_gnat/casita-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.casita.com/student-accommodation/australia/sydney"
    }
  ]
}' |
apify call confidential_gnat/casita-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,confidential_gnat/casita-property-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/CLtPagT2GPfEgMsIr/builds/fCWdaHBV9ofPYnU2d/openapi.json
