Civitatis Tours & Activities Scraper
Pricing
from $1.75 / 1,000 activities
Civitatis Tours & Activities Scraper
Scrape Civitatis tours into records. Get titles, ratings. Use listings or activity URLs; no login or proxy key. Pricing: $0.0018 per activity-result on Free plan. `category`/`categories` fill only via listing cards; direct activity URLs leave them empty.
Pricing
from $1.75 / 1,000 activities
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
a day ago
Last modified
Categories
Features
Share
Civitatis Tours and Activities Scraper
Turn Civitatis city listings or direct activity pages into one structured record per tour or activity. No buyer login or external proxy key is needed.
- Collect titles, locations, ratings, review counts, and free-cancellation status.
- Build travel and destination datasets from Civitatis city listings.
- Extract coordinates, images, and descriptions; price, duration, languages and meeting point are returned only when the page provides them.
- Scrape direct activity pages or follow listing links with pagination.
What you get
One dataset record is returned for each scraped activity.
| Field | Type | Description |
|---|---|---|
id | string | Stable numeric activity ID. |
title | string | Activity name. |
activity_url | string | Activity page URL. |
city | string | Activity city. |
country | string | Activity country. |
category | string | Primary activity category. |
categories | array of strings | Activity category labels. |
price | number | Starting price. |
currency | string | Price currency. |
rating | number | Average rating, out of 10. |
review_count | integer | Number of reviews. |
duration | string | Human-readable activity duration. |
languages | array of strings | Two-letter language codes offered. |
meeting_point | string | Where the activity starts. |
free_cancellation | boolean | Whether free cancellation is available. |
lat | number | Start latitude. |
lng | number | Start longitude. |
image_url | string | Lead image URL. |
description | string | Short activity description. |
review_images_count | integer | Number of user-uploaded review photos. |
scraped_at | ISO 8601 string | UTC timestamp for the scrape. |
error | string | Error field; null in a normal output record. |
A field is null or empty when the source page does not provide it. category and categories are filled only for activities found through city listings; direct activity URLs return them empty.
Sample output
Real record from a Civitatis page, with all 22 keys. This sample is a transfer page, so price, currency, duration, languages and meeting_point are empty here; on regular activity pages the Actor reads them from the page when present.
{"id": "1932","title": "Transfers in Madrid - Airport hotel transfer service - Civitatis","activity_url": "https://www.civitatis.com/en/madrid/transfers/","city": "Madrid", "country": "España","category": null, "categories": [],"price": null, "currency": null,"rating": 7.91, "review_count": 14831,"duration": null, "languages": [], "meeting_point": null,"free_cancellation": true,"lat": 40.416143, "lng": -3.700418,"image_url": "https://www.civitatis.com/f/espana/madrid/madrid-m.jpg","description": "Transfer booking in Madrid. Make your trip easier with our airport-to-hotel transfer service — the most convenient option at the best price.","review_images_count": null,"scraped_at": "2026-10-27T11:15:59Z", "error": null}
Pricing
The Actor uses pay-per-event billing. The primary activity-result event is one scraped result with all fields.
| Event | Plan | Price |
|---|---|---|
activity-result | Free plan | $0.0018 per result |
activity-result | Silver plan | $0.001764 per result |
activity-result | Bronze plan | $0.001782 per result |
activity-result | Gold, Platinum, or Diamond plan | $0.001746 per result |
apify-actor-start | Free plan | $0.00005 per event |
apify-actor-start | Silver plan | $0.000049 per event |
apify-actor-start | Bronze plan | $0.0000495 per event |
apify-actor-start | Gold, Platinum, or Diamond plan | $0.0000485 per event |
The apify-actor-start event is charged once per GB of run memory, with a minimum of one event per run.
Example run totals on the Gold plan, with one apify-actor-start event:
| Results | activity-result charges | Start event | Total |
|---|---|---|---|
| 1,000 | 1,000 x $0.001746 = $1.746 on Gold plan | $0.0000485 | $1.7460485 on Gold plan |
| 10,000 | 10,000 x $0.001746 = $17.46 on Gold plan | $0.0000485 | $17.4600485 on Gold plan |
A Free-plan run is capped at 5 records (see Input parameters): 5 x $0.0018 = $0.009 on Free plan, plus one $0.00005 start event on Free plan.
The Apify Free plan includes $5 of platform credit each month. Each 5-record Free-plan run pays its own start event, so the credit covers 552 such runs, which is 2,760 results in total.
You pay only for the events listed above. This Actor does not use the Pay per event + usage option, so compute, proxy traffic and storage are not billed separately to you.
How to use
- Open the Actor in Apify Console and provide Civitatis city listing URLs, direct activity URLs, or both.
- Set
maxItemsto limit activity records, or leave it at0for no limit. - Set
maxPagesPerCityto control listing pages followed for each city. - Keep the default Apify Residential proxy configuration unless another accepted configuration is needed.
- Set
disableUsageStatstotrueif you want to turn off the run summary in Usage statistics. - Run the Actor and open the dataset to inspect one record per activity.
- Repeat the run through Apify Schedules; daily is a reasonable starting point for listings or activity collections.
Example input (on the Free plan, maxItems: 100 is capped at 5):
{"startUrls": ["https://www.civitatis.com/en/madrid/","https://www.civitatis.com/en/madrid/atletico-stadium-tour/"],"maxItems": 100,"maxPagesPerCity": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"disableUsageStats": false}
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
startUrls | Civitatis city listing and/or direct activity URLs. Listings are paginated and their activity links followed; direct pages are scraped directly. | Prefilled with the Madrid listing URL |
maxItems | Maximum activity records across all start URLs. 0 sets no limit. | 0 |
maxPagesPerCity | Maximum listing pages followed per city. Each page has 20 activities. | 3 |
proxyConfiguration | Proxy configuration used to reach Civitatis. | Apify Residential |
disableUsageStats | Set to true to turn off the run summary. | false |
On the Free plan, a run returns at most 5 records and follows one listing page per city, even when larger values are requested. A paid Apify plan removes these restrictions.
Limits and edge cases
| Condition | What you see | What to do |
|---|---|---|
| The Free plan is used. | The caps described under Input parameters apply. | Use a paid Apify plan for larger runs. |
maxItems is greater than 0. | The Actor stops at that number across the supplied start URLs. | Increase maxItems or use 0. |
| A listing or activity page cannot be fetched. | That page produces no activity record. | Check the URL and run again. |
| A fetched page has neither an activity ID, title, nor price. | The page is omitted as not being a real activity page. | Supply a Civitatis city listing or direct activity URL. |
| A field is not present in the source page. | The field can be null or an empty array. | Use the available fields and inspect the source page if needed. |
| A run is aborted or times out after records have been pushed. | Pushed records remain; records not yet pushed do not appear. | Retry the run for the remaining records. |
FAQ
How much does it cost to scrape Civitatis tours and activities?
activity-result costs $0.0018 per result on the Free plan and $0.001746 on the Gold plan; see the Pricing table for all plans. On the Gold plan, 1,000 x $0.001746 = $1.746, plus one $0.0000485 start event on Gold plan.
Which Civitatis URLs can I provide?
Use city listing pages such as https://www.civitatis.com/en/madrid/, direct activity pages such as https://www.civitatis.com/en/madrid/atletico-stadium-tour/, or a mixture of both.
Why is my result empty or missing fields?
A page produces no record if it cannot be fetched or has neither an activity ID, title, nor price. Check the URL and retry.
Does the Actor require a login or proxy key?
No buyer login or external proxy key is required. The default configuration uses Apify Residential to reach Civitatis.
Is collecting public Civitatis data legal and allowed?
The Actor collects publicly available data. Whether a particular collection and use is allowed depends on the source terms and applicable law, so review them for your use case.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.