list_stale_notices

Dated facts that ran out or need a new check.

GET/v1/guides/{productId}/stale-notices
MCP tool list_stale_noticesScope: readBetaSince 2026-09-30
Markdown

Status notices past their until date, fees and hours past validUntil, timetables that ran out, events whose dates have all passed, rows past their reviewBy date, and (with olderThanDays) facts not checked in that many days. Each entry names the spot, place, route or area and the field, so you can re-check it and update the row.

curl "https://sceniq.earth/api/v1/guides/j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2/stale-notices" \
  -H "Authorization: Bearer $SCENIQ_API_KEY"

Path parameters

Query parameters

  • olderThanDaysnumberoptional

    Also list statuses, fees, hours and factsCheckedOn older than this many days.

Returns

200 OK with StaleNotices: The stale facts of a guide.

  • productIdstring · guide idrequired

    The guide's id.

  • todaystringrequired

    The date the check ran for (YYYY-MM-DD).

  • countnumberrequired

    Number of notices.

  • noticesarray of StaleFactrequired

    Dated facts that ran out or need a new check.

    Show 7 fieldsof StaleFact
    • kindstringrequired

      The kind of row.

      spotplacerouteareaphoto
    • idstringrequired

      The row's id.

    • namestringrequired

      The row's name.

    • fieldstringrequired

      The field that needs a new check (fees, status, schedule, reviewBy ...).

    • reasonstringrequired

      Why it is listed.

      review_dueendednot_checked_recently
    • datestring or nullrequired

      The date that passed (YYYY-MM-DD).

    • detailstringrequired

      What ran out, in plain words.

Response 200
{
  "productId": "j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2",
  "today": "2026-09-29",
  "count": 3,
  "notices": [
    {
      "kind": "spot",
      "id": "k1736b344br1c7m8qk8ks4sfndxyyftj",
      "name": "Glacier Point",
      "field": "reviewBy",
      "reason": "review_due",
      "date": "2026-09-15",
      "detail": "facts were due for a new check on 2026-09-15"
    },
    {
      "kind": "place",
      "id": "km73j9h5g1f7d3s9a5p1p7j3v9y5t1r7",
      "name": "Old Faithful Inn",
      "field": "schedule",
      "reason": "ended",
      "date": "2026-09-27",
      "detail": "hours valid until 2026-09-27"
    },
    {
      "kind": "route",
      "id": "kx7f2h8j4k0k6z2x8c4v0b6n2m8q4w0e",
      "name": "Fairy Falls trail",
      "field": "status",
      "reason": "ended",
      "date": "2026-09-25",
      "detail": "the closed notice ran until 2026-09-25; update or clear it"
    }
  ]
}

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.