list_areas
Parks, islands and regions shared by several spots.
/v1/guides/{productId}/areasEach area with its rules, fees, season, links and status, plus the spotKeys that point at it (update_spot areaId).
curl "https://sceniq.earth/api/v1/guides/j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2/areas" \
-H "Authorization: Bearer $SCENIQ_API_KEY"Path parameters
- productIdstring · guide idrequired
Id of the guide (a product of type map). From
list_guidesorcreate_guide.
Returns
200 OK with this object.
- productIdstring · guide idrequired
The guide's id.
Every area of the guide.
Show 11 fieldsHide fieldsof AreaWithSpots
- idstringrequired
The area's id.
- namestringrequired
The area's name.
- kindstringoptional
park, reserve, island, region, city or other.
parkreserveislandregioncityother - notestringoptional
What applies across the area.
- seasonstringoptional
The area's season in words.
Access rules for the whole area.
Show 6 fieldsHide fieldsof AccessRule
- textstringrequired
The rule in the creator's words, at most 300 characters.
- kindstringoptional
reservation, permit, guide, registration,
no_independent_travel, vehicle or other.reservationpermitguideregistrationno_independent_travelvehicleother - monthsarray of numbersoptional
The months the rule applies (1 to 12); the apps show it only then. Absent means all year.
- appliesTostringoptional
car for a rule that only binds drivers (a timed entry for vehicles), all for everyone.
carall - bookingOpensstringoptional
When booking opens, in words, at most 100 characters (90 days ahead at 07:00).
- sourceUrlstringoptional
The page that states the rule (http or https).
Fees for the whole area.
Show 14 fieldsHide fieldsof Fee
- labelstringrequired
What the fee is for, at most 80 characters (Adult entry, Car park, Boat transfer).
- amountnumberoptional
The price in major units (40, 12.5). Needs currency. Absent when the fee is free or left to the official page.
- currencystringoptional
ISO 4217 code (USD, EUR, ARS). Required with amount.
- freebooleanoptional
true for no charge. Cannot be combined with an amount.
- seeOfficialbooleanoptional
true for a price the guide leaves to the official page on purpose (it changes too often to copy).
- perstringoptional
What one amount pays for: person, vehicle, night, group, entry, day or hour.
personvehiclenightgroupentrydayhour - audiencestringoptional
Who pays this rate: all, adult, child, foreign, domestic, resident, student or senior.
alladultchildforeigndomesticresidentstudentsenior - paidWherestringoptional
Where it is paid: online,
on_siteorin_tour(part of a tour price).onlineon_sitein_tour - paymentstringoptional
How it can be paid:
cash_only,card_onlyorcash_or_card.cash_onlycard_onlycash_or_card - notestringoptional
One line of context, at most 300 characters (free on the first Sunday of the month).
- validFromstringoptional
The first day the price applies (YYYY-MM-DD).
- validUntilstringoptional
The last day the price applies (YYYY-MM-DD). Readiness flags the row after it.
- sourceUrlstringoptional
The page the price comes from (http or https).
- checkedOnstringoptional
The day the value was last checked against its source (YYYY-MM-DD).
Links for the whole area.
Show 5 fieldsHide fieldsof GuideLink
- kindstringrequired
What the link is for. official and website are the place's own pages; tickets and booking sell entry or rooms; status, timetable and tide carry live conditions; listing, social, authority and app cover the rest.
officialwebsiteticketsbookingstatustimetabletidelistingsocialauthorityappother - labelstringoptional
The link text buyers see, at most 60 characters. Without it the apps name the link by its kind.
- urlstringoptional
An http or https page. http is accepted with a warning.
- valuestringoptional
A channel that is not a URL, at most 200 characters, for example a WeChat mini program and its search term.
- notestringoptional
One line of context shown under the link, at most 300 characters.
A closure notice for the whole area.
Show 6 fieldsHide fieldsof StatusNotice
- statestringrequired
open,
partly_closed, closed or reopening. reopening with until means it reopens on that day.openpartly_closedclosedreopening - notestringoptional
What is closed or changed, in the creator's words, at most 500 characters.
- sincestringoptional
The day the state began (YYYY-MM-DD).
- untilstringoptional
The day the state is expected to end (YYYY-MM-DD). Must not be before since.
- sourceUrlstringoptional
The page that announced it (http or https).
- checkedOnstringoptional
The day the value was last checked against its source (YYYY-MM-DD).
Research evidence, never shown to buyers.
Show 7 fieldsHide fieldsof SourceRef
- urlstringoptional
The page, API or archive copy the facts come from (http or https).
- titlestringoptional
A name for a source without a URL (a park leaflet, a phone call with the operator), at most 200 characters.
- kindstringoptional
page, api, archive, document or other.
pageapiarchivedocumentother - capturedOnstringoptional
The day the source was read (YYYY-MM-DD).
- notestringoptional
What the source says or why it was chosen, at most 500 characters.
- supportsarray of stringsoptional
Which facts it backs, up to 12 entries of at most 60 characters (fees, arrival.operating, lat/lon).
- conflictbooleanoptional
true when this source disagrees with another on the facts it backs. Say which one the value follows in note or
reviewNotes.
- spotKeysarray of stringsrequired
The spots that point at the area (
update_spotareaId).
{
"productId": "j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2",
"areas": [
{
"id": "area_01m3gvdap06m6mx2kp4t553d6g",
"name": "Yellowstone National Park",
"kind": "park",
"note": "One entrance pass covers every spot in the Yellowstone chapter. Cell coverage is patchy between the geyser basins; download the guide before you drive in.",
"season": "Most park roads are open to cars from May to early November.",
"rules": [
{
"text": "Stay on boardwalks and marked trails in every thermal area.",
"kind": "other",
"sourceUrl": "https://www.nps.gov/yell/planyourvisit/safety.htm"
}
],
"fees": [
{
"label": "Park entrance, private vehicle, 7 days",
"amount": 35,
"currency": "USD",
"per": "vehicle",
"paidWhere": "online",
"sourceUrl": "https://www.nps.gov/yell/planyourvisit/fees.htm",
"checkedOn": "2026-09-20"
}
],
"links": [
{
"kind": "official",
"url": "https://www.nps.gov/yell/index.htm",
"label": "Yellowstone National Park (NPS)"
},
{
"kind": "status",
"url": "https://www.nps.gov/yell/planyourvisit/conditions.htm",
"label": "Park road status"
}
],
"sources": [
{
"url": "https://www.nps.gov/yell/planyourvisit/fees.htm",
"kind": "page",
"capturedOn": "2026-09-20",
"supports": [
"fees"
]
}
],
"spotKeys": [
"01M2Z1G0Y0QG7M2V6N9R3T5W8Y"
]
},
{
"id": "area_01m3gvgcb04pf38p66vz544w1b",
"name": "Yosemite National Park",
"kind": "park",
"season": "Open all year. Glacier Point Road and Tioga Road close to cars in winter.",
"rules": [
{
"text": "Glacier Point Road and Tioga Road are closed to cars in winter, usually from November to late May.",
"kind": "vehicle",
"months": [
11,
12,
1,
2,
3,
4,
5
],
"appliesTo": "car",
"sourceUrl": "https://www.nps.gov/yose/planyourvisit/conditions.htm"
}
],
"fees": [
{
"label": "Park entrance, private vehicle, 7 days",
"amount": 35,
"currency": "USD",
"per": "vehicle",
"sourceUrl": "https://www.nps.gov/yose/planyourvisit/fees.htm",
"checkedOn": "2026-09-20"
}
],
"links": [
{
"kind": "official",
"url": "https://www.nps.gov/yose/index.htm",
"label": "Yosemite National Park (NPS)"
},
{
"kind": "timetable",
"url": "https://yarts.com/",
"label": "YARTS buses into the valley"
}
],
"spotKeys": [
"01M2Z1G0Y0R2K5P8S1V4X7Z0C3",
"01M3H2AWH0F9PB64V7QB8QS0MC",
"01M3H2AXG8GB8YNF4FCEFARFN5",
"01M3H2AYFG8169CVH0JCQY2BN2"
]
}
]
}Errors
Every error is { error: { code, message } }. Act on the code.
- 400invalid_argumentA required field is missing, a field is unknown, or a value does not match its type (the Convex validator's path and value are in the message).
- 401unauthenticatedThe request carries no key. Send it as Authorization: Bearer sk_sceniq_... (or X-Api-Key).
- 401invalid_api_keyThe key is unknown, revoked or expired.
- 403forbiddenThe key belongs to a creator account that is no longer active.
- 404not_foundThe id does not exist or belongs to another creator. The two answers are identical on purpose, so ids never reveal what exists.
- 429rate_limitedOver a limit: requests per key per minute, per creator per hour, uploads per key per minute, or check_links per guide per hour.
- 500internal_errorAn unexpected failure. The message is hidden on purpose.