Tenerife Cruise Port Schedule Scraper (Cruise Port Calls)
Pricing
from $2.50 / 1,000 cruise calling delivereds
Tenerife Cruise Port Schedule Scraper (Cruise Port Calls)
Santa Cruz de Tenerife Port Authority cruise schedule as JSON: arrival and departure times, vessel, passenger and crew capacity, agent, port, berth and home-port flag. Covers Tenerife, La Palma, La Gomera and El Hierro. Only new or changed callings per run; one HTTP request, no browser.
Pricing
from $2.50 / 1,000 cruise calling delivereds
Rating
0.0
(0)
Developer
Steadfetch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Puerto de Tenerife Cruise Callings Monitor
Public, daily-updated cruise ship schedule of the Port Authority of Santa Cruz de Tenerife
(Autoridad Portuaria de Santa Cruz de Tenerife), extracted from the official
/cruceros-previstos/ page.
What it does
- Reads the official public schedule table once per run (one HTTP request, no browser, no proxies).
- Returns one item per cruise calling: arrival and departure date/time, vessel, shipping agent (company), passenger and crew capacity, port, berth and home-port flag.
- Converts Spanish dates (
21/10/2026) to ISO (2026-10-21), Spanish thousands separators (3.674) to integers andSI/NOto booleans. - Keeps a monitor state in a named key-value store, so a daily run only delivers and charges for new or changed callings.
sincekeeps only callings from a given arrival date;maxResultscaps the run.- Emits no personal data:
agentis a shipping company, never a private individual, and no contact or passenger-level fields are read.
Source attribution: Data source: Autoridad Portuaria de Santa Cruz de Tenerife
(https://www.puertosdetenerife.org/cruceros-previstos/). The port authority's legal notice
authorises reproduction of its contents when the origin is expressly cited, so every item carries
sourceUrl and the listing cites the authority.
Example output
{"url": "https://www.puertosdetenerife.org/cruceros-previstos/","sourceUrl": "https://www.puertosdetenerife.org/cruceros-previstos/","title": "BRITANNIA - S/C DE LA PALMA - 2026-10-21","arrivalDate": "2026-10-21","arrivalTime": "08:00","departureDate": "2026-10-21","departureTime": "18:00","agent": "A. PEREZ Y CIA, S.L.","vessel": "BRITANNIA","passengerCapacity": 3674,"crewCapacity": 1376,"port": "S/C DE LA PALMA","berth": "DIQUE","homePort": false,"scrapedAt": "2026-10-21T01:30:00.000Z"}
Input
| Field | Type | Default | Meaning |
|---|---|---|---|
since | ISO date YYYY-MM-DD | today (UTC) | Keep callings whose arrival date is on or after this day. |
maxResults | integer 1-5000 | 1000 | Maximum number of new callings to deliver. |
monitorMode | boolean | true (Store prefill: false) | Deliver only callings not seen by a previous run. Disable for a full backfill. |
strictSchema | boolean | true | Fail the run if any item violates the dataset schema. Keep enabled. |
Pricing
Pay per event:
apify-actor-start: 0.00005 USD per run (Apify-recommended default).apify-default-dataset-item: 0.0025 USD per new calling, i.e. 2.50 USD per 1,000 callings.
There is no custom per-item event: the synthetic dataset event already charges per result, so a result is never billed twice. Duplicated, filtered or skipped rows are not delivered and not charged.
Cost per 1,000 callings: the page publishes about 2,045 rows and parsing it takes a measured ~10 ms per page in local runs (Node 24, 200 iterations over a real 80-row fixture). Compute for a full page at 256 MB is well under 0.001 USD, so the measured cost per 1,000 callings is < 0.01 USD and the margin is above 99 %.
FAQ
Does it need a login, an API key or a proxy? No. The schedule is a public HTML page. The Actor makes one request per run and stops on 401/403/429/451 instead of trying to evade a block.
Why is berth sometimes null?
The port authority leaves the berth blank for some future callings. The Actor reports null;
it never invents a berth.
Why does a daily run return few or zero items?
The monitor dedupes by (arrivalDate, arrivalTime, vessel, port, berth). After the first run,
only new or changed callings are delivered. Set monitorMode to false (or use a fresh
key-value store) to backfill. The daily QA run uses monitorMode: false so it always validates
the item mapping.
Does it include passenger names or crew lists? No. Only vessel- and company-level fields published by the port authority are read.
Where does the data come from? The official public schedule of the Autoridad Portuaria de Santa Cruz de Tenerife, cited in every item and in the listing.
Maintenance
Tested daily: a scheduled run validates the official page and the dataset schema every day.
Failures become issues in the Steadfetch Actors repository. npm test, npm run publish:check
and apify-cli validate-schema run in CI on every push.