# Studapart Scraper \[$1.50/1K💰] | Student Rooms (`ahmed_jasarevic/studapart-scraper`) Actor

Scrape Studapart student-housing listings in France and Belgium: rent, charges, deposit, surface, amenities, lease terms, photos and nested room offers. $1.50 per 1,000 properties.

- **URL**: https://apify.com/ahmed_jasarevic/studapart-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Studapart Scraper – Student Housing & Room Data

Scrape public **Studapart** student-housing listings across France, Belgium and other European cities. Get rent, charges, deposit, surface, room type, amenities, lease terms, availability, landlord details, photos and nested room offers. **$1.50 per 1,000 properties.**

### Student Housing Data Across Europe

Studapart lists student rooms, flatshares, studios, apartments and residences. This Actor turns public property pages into structured records for student-housing operators, relocation agencies, universities, landlords, investors and rental-market researchers.

- **Housing supply** — map rooms and properties by city.
- **Room-level analysis** — compare rent and availability for each room offer.
- **Relocation research** — find options near universities and city centers.
- **Lead generation** — build lists of landlords, agencies and residences.
- **Market monitoring** — schedule runs to track new properties and prices.

### How It Works

![How the Studapart Scraper works: from a city or property URL to structured student-housing records.](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-studapart-scraper.webp)

The Actor reads public Studapart listing pages and normalizes each property into one dataset row. Room offers are returned as a nested `rooms` array. Add cities or direct property URLs, then cap the run with `maxItems`.

- One row per property or residence.
- Each row includes its room offers as a nested array.
- City filters and direct property URLs are supported.
- Fields that the landlord does not publish stay `null`.

### Search By City Or Start URL

Use `cities` for a quick city filter or `startUrls` for exact property pages:

- **Cities** — Paris, Lyon, Nimes, Aix-en-Provence and other Studapart cities.
- **Property URLs** — pass individual listing pages for targeted extraction.
- **All cities** — leave `cities` empty to include every city in the public inventory.
- **Property types** — rooms, flatshares, studios, apartments and student residences.

### Property And Room Fields

Each property record includes location, coordinates, property type, room type, listing type, monthly rent, charges, deposit, surface, floor, room and bathroom counts, maximum tenants, furnished status, amenities, lease type, minimum lease duration, availability, photos, landlord details, description, rating and review count. The nested `rooms` array contains each room’s label, rent, surface, furnished status, maximum tenants, availability and category.

### Input – Configure A Studapart Run

| Field | Type | Default | Notes |
|---|---|---|---|
| `startUrls` | array | `[]` | Optional property detail URLs; empty uses the public listing inventory |
| `cities` | array | `["Paris"]` | City filter, e.g. `Paris`, `Lyon`, `Nimes`, `Aix-en-Provence`; empty includes all cities |
| `maxItems` | integer | `50` | Maximum properties saved; hard cap 1,000 |
| `proxy` | object | Apify Proxy off | Standard Apify Proxy configuration for large runs |

### Output – Student Property Fields

Each dataset item can contain:

- `propertyId`, `title`, `url`
- `city`, `address`, `postalCode`, `country`
- `latitude`, `longitude`
- `propertyType`, `roomType`, `listingType`
- `monthlyRent`, `currency`
- `chargesAmount`, `rentIncludesCharges`, `chargesIncluded`, `chargesNotIncluded`
- `deposit`, `depositRequired`
- `surfaceM2`, `floor`, `roomsCount`, `bathrooms`, `bedrooms`, `maxTenants`
- `furnished`, `amenities`
- `leaseType`, `minLeaseDuration`, `availability`
- `photos`
- `ownerName`, `ownerProfileUrl`, `lessorType`
- `rooms`
- `description`, `rating`, `reviewCount`
- `scrapedAt`

### Example Input – Paris And Lyon Properties

```json
{
  "startUrls": [],
  "cities": ["Paris", "Lyon"],
  "maxItems": 50,
  "proxy": { "useApifyProxy": false }
}
```

### Example Output – Paris Flatshare

```json
{
  "propertyId": "0033e34c-2f7a-4a5c-9c1e-123456789abc",
  "title": "91m² Private room in a flatshare for 4 people",
  "url": "https://www.studapart.com/en/accommodation-Paris/91m2-Private-room-in-a-flatshare-for-4-people/property/0033e34c-2f7a-4a5c-9c1e-123456789abc",
  "city": "Paris",
  "address": "12 Rue Example",
  "postalCode": "75011",
  "country": "France",
  "latitude": 48.8566,
  "longitude": 2.3522,
  "propertyType": "Apartment",
  "roomType": "Private room",
  "listingType": "Flatshare",
  "monthlyRent": 850,
  "currency": "EUR",
  "chargesAmount": 60,
  "rentIncludesCharges": false,
  "deposit": 1700,
  "depositRequired": true,
  "surfaceM2": 91,
  "bedrooms": 4,
  "bathrooms": 1,
  "maxTenants": 4,
  "furnished": true,
  "amenities": ["Wi-Fi", "Washing machine", "Heating"],
  "leaseType": "Flexible",
  "minLeaseDuration": "3 months",
  "availability": "2026-11-15",
  "rooms": [
    {
      "label": "Room 2",
      "rent": 850,
      "surfaceM2": 14,
      "furnished": true,
      "maxTenants": 1,
      "availableFrom": "2026-11-15",
      "category": "Private room"
    }
  ],
  "description": "Furnished private room in a four-person flatshare near public transport.",
  "rating": 4.6,
  "reviewCount": 12,
  "scrapedAt": "2026-10-31T12:00:00.000Z"
}
```

### Export Student Housing Data To JSON, CSV Or Excel And Schedule Runs

Download results as JSON, CSV, Excel or XML from the run page or through the Apify API. Connect runs to Google Sheets, Make, Zapier or webhooks, or schedule weekly refreshes to track new properties and room availability.

### Related Actors

- [Google Maps Scraper](https://apify.com/apify/google-maps-scraper) — add neighborhood context and nearby amenities
- [Google Search Scraper](https://apify.com/ahmed_jasarevic/google-search-scraper) — research universities and student cities
- [Contact Details Scraper](https://apify.com/ahmed_jasarevic/contact-details-scraper) — enrich landlord and agency websites
- [Website Content Crawler](https://apify.com/apify/website-content-crawler) — collect public university housing information

### FAQ

#### What is Studapart?

Studapart is a student-housing platform with rooms, flatshares, studios, apartments and residences in France, Belgium and other European cities.

#### Do I need a Studapart account?

No. The Actor reads public listings and never asks for your Studapart credentials.

#### Why is `ownerName` missing?

Studapart does not publish landlord or agency names on every listing. The Actor returns the public lessor type and profile URL when available.

#### Why are charges or deposit missing?

Some landlords do not disclose charges, deposits or lease details. Those fields stay `null` or empty.

#### How are rooms returned?

Each property is one dataset row. Individual room offers are nested in the `rooms` array, so you can compare rent and availability without flattening the property.

#### Does it include all cities?

Coverage depends on the public Studapart inventory. Leave `cities` empty to include all available cities, or pass a city filter to narrow the run.

#### How much does it cost?

FREE and BRONZE users pay **$0.0015 per property** ($1.50 per 1,000), SILVER pays **$0.00145** and GOLD+ pays **$0.0014**, plus a small Actor Start event.

#### Can I scrape a single property?

Yes. Pass its property detail URL in `startUrls`.

### For AI Agents & LLM Apps

Returns one row per Studapart property with rent, charges, deposit, location, amenities, lease terms and a nested array of room offers.

Minimal working input:

```json
{ "cities": ["Paris"], "maxItems": 24 }
```

Output fields: `propertyId, title, url, city, address, postalCode, country, latitude, longitude, propertyType, roomType, listingType, monthlyRent, currency, chargesAmount, rentIncludesCharges, chargesIncluded, chargesNotIncluded, deposit, depositRequired, surfaceM2, floor, roomsCount, bathrooms, bedrooms, maxTenants, furnished, amenities, leaseType, minLeaseDuration, availability, photos, ownerName, ownerProfileUrl, lessorType, rooms, description, rating, reviewCount, scrapedAt`.

Behaviors an agent should know:

- `cities` is a city filter; leave it empty for all available cities.
- `maxItems` is capped at **1,000**.
- `rooms` is a nested array; each room has its own rent and availability.
- `ownerName` and `lessorType` can be `null` when the landlord does not publish them.
- `depositRequired` and `rentIncludesCharges` are provided even when the amount is missing.
- Free users get a 10-property preview.

Billing: **$0.0015 per property** on FREE/BRONZE ($1.50 per 1,000), $0.00145 on SILVER and $0.0014 on GOLD+, plus a small Actor Start event.

### Legal & Compliance Disclaimer

This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by Studapart.

It collects publicly available housing listings — no login and no private account. Listing details and prices are landlord-reported and may change. Users are responsible for complying with Studapart's terms and applicable housing, privacy and consumer law. Nothing here is legal or financial advice.

### SEO Keywords

studapart scraper, student housing europe, student accommodation data, studapart listings, paris student housing, lyon student housing, student rooms, flatshare data, student residence data, rental listings france, belgium student housing, student housing api, studapart api, room rental data, student property data, europe student housing, accommodation market data, student housing export

# Actor input Schema

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

Optional. Property detail URLs (https://www.studapart.com/en/accommodation-.../property/...) or the ads sitemap URL. Leave empty to crawl the full public sitemap.

## `cities` (type: `array`):

Optional city filter, matched against the city slug in the listing URL (e.g. Paris, Lyon, Nimes, Aix-en-Provence). Leave empty for all cities.

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

Maximum number of property records to save. Each record includes its rooms as a nested array.

## `proxy` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "startUrls": [],
  "cities": [
    "Paris"
  ],
  "maxItems": 50,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# 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": [],
    "cities": [
        "Paris"
    ],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/studapart-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": [],
    "cities": ["Paris"],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/studapart-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": [],
  "cities": [
    "Paris"
  ],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/studapart-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/studapart-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/CnlchWcbqHHQymTTy/builds/JtVHhT4ZQHvDZd7Yr/openapi.json
