Wild About Lapland APIwildaboutlapland.com ↗
Fetch northern lights and Lapland tour listings, prices, durations, start times, and age requirements from wildaboutlapland.com via 2 structured endpoints.
What is the Wild About Lapland API?
The Wild About Lapland API exposes 2 endpoints that return structured tour data from wildaboutlapland.com. Use list_tours to pull every tour card from a category page — including name, booking URL, and headline price — then feed each result into get_tour to retrieve the full price breakdown, duration, location, start times, and participation age requirement for a specific tour.
curl -X GET 'https://api.parse.bot/scraper/3bcecb71-af04-4f18-95e8-975ae7ebe2c2/list_tours?category=northern-lights-tours-in-rovaniemi' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace wildaboutlapland-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Wild About Lapland Tours — browse a category, then drill into one tour."""
from parse_apis.wildaboutlapland_com_api import WildAboutLapland, InputNotFound
client = WildAboutLapland()
# Fetch the Northern Lights category to see all tours and metadata.
category = client.categories.get(category="northern-lights-tours-in-rovaniemi")
print(f"{category.category_title} — {category.total} tours")
# Browse the summary cards in that category.
for summary in category.tours[:3]:
print(f" {summary.name} from €{summary.price_from} / {summary.price_unit}")
# Drill into the first tour's full detail via the typed navigation link.
first = category.tours[0]
try:
tour = first.details()
except InputNotFound:
print(f"Tour page no longer exists: {first.tour_url}")
else:
print(f"\n{tour.name}")
print(f" Duration: {tour.duration}")
print(f" Location: {tour.location}")
if tour.participation:
print(f" Age requirement: {tour.participation}")
for price in tour.prices:
print(f" {price.unit}: {price.amount} {price.currency}")
if tour.start_times:
print(f" Start times: {', '.join(tour.start_times)}")
print("\nexercised: categories.get / TourSummary.details / Tour fields / Price fields")
Returns every tour card in the main grid of a Wild About Lapland category page, in page order, one row per tour: the tour name, the URL its card/Book now button links to, the headline price (amount, EUR) and its unit (adult or group). One page fetch, no pagination: a category page lists all of its tours at once. Cross-promotion grids lower on the page (Our Top Tours) are not included. A category slug the site does not know returns a not-found error.
| Param | Type | Description |
|---|---|---|
| category | string | Category page slug as it appears in the site URL path, lowercase letters, digits and hyphens. Confirmed values: northern-lights-tours-in-rovaniemi, snowmobile-rovaniemi. |
{
"type": "object",
"fields": {
"total": "number of tour cards returned",
"tours": "array of tour cards: name, tour_url (tour page, feeds get_tour), book_now_url (href of the card's Book now link, same as tour_url), book_now_label, price_from (number, headline price), price_unit (adult or group), currency (EUR)",
"category": "the category slug that was fetched",
"category_url": "URL of the category page",
"category_title": "heading of the category page"
},
"sample": {
"data": {
"total": 13,
"tours": [
{
"name": "Northern Lights Wilderness Tour with Professional Camera",
"currency": "EUR",
"tour_url": "https://wildaboutlapland.com/northern-lights-tours-in-rovaniemi/northern-lights-wilderness-tour-with-professional-camera/",
"price_from": 129,
"price_unit": "adult",
"book_now_url": "https://wildaboutlapland.com/northern-lights-tours-in-rovaniemi/northern-lights-wilderness-tour-with-professional-camera/",
"book_now_label": "Book now!"
}
],
"category": "northern-lights-tours-in-rovaniemi",
"category_url": "https://wildaboutlapland.com/northern-lights-tours-in-rovaniemi/",
"category_title": "Northern Lights"
},
"status": "success"
}
}About the Wild About Lapland API
Listing Tours by Category
list_tours accepts a category slug (e.g. northern-lights-tours-in-rovaniemi) and returns every tour card on that category page in display order. Each item in the tours array includes the tour name, a tour_url pointing to the tour detail page, and a book_now_url (the href of the card's Book Now button, which matches tour_url). The response also surfaces category_title, category_url, and a total count of cards returned. The endpoint fetches one page only — there is no pagination.
Tour Detail Data
get_tour accepts a full tour_url — exactly as emitted in list_tours — and returns the complete detail for that tour. The prices array contains every price row shown on the page, each with an amount (number), currency (always EUR), and unit (e.g. adult, child). Additional fields include duration (free text as shown on the page), location, start_times (an array of time strings or free-text notes split from the page's comma-separated list), participation (the age requirement text, or null if not listed), and book_now_url (the page's own Book Now anchor, or null if absent).
Combining Both Endpoints
A typical workflow calls list_tours to enumerate available tours in a category, collects the tour_url values, then calls get_tour on each URL to build a structured dataset of prices, durations, and scheduling details. The total field from list_tours tells you how many individual get_tour calls to expect.
The Wild About Lapland API is a managed, monitored endpoint for wildaboutlapland.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wildaboutlapland.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official wildaboutlapland.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate and compare adult vs. child pricing across all northern lights tours in a category
- Monitor headline from-prices for tours on a category page to detect pricing changes
- Build a tour comparison table showing duration, location, and start times side by side
- Extract participation age requirements to filter tours suitable for families with young children
- Collect all booking URLs from a category to power a redirect or affiliate link aggregator
- Compile start-time availability across multiple tours to help plan itineraries by time of day
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Wild About Lapland have an official developer API?+
What does get_tour return in the prices field, and how are multiple price tiers handled?+
prices is an array where each element represents one price row from the tour page. A tour might return two rows — for example, {amount: 89, currency: 'EUR', unit: 'adult'} and {amount: 45, currency: 'EUR', unit: 'child'} — reflecting every amount/unit pair the page lists under its Price section.Does the API cover all tour categories on wildaboutlapland.com, or only northern lights tours?+
list_tours accepts any valid category slug from the site's URL path, so it is not limited to northern lights tours. Any category slug that appears in a wildaboutlapland.com URL path can be passed as the category input. Only one category page is fetched per call.Are guest reviews or ratings for tours included in the response?+
What happens with start_times for tours that don't list fixed times?+
start_times array. If no start time information is present on the page, the array is empty.